我知道coalesce将返回传递给它的第一个非null值.是否有类似的东西将返回第一个非空/非假值?
例:
select FunctionIWant(0,'','banana') as fruit; //returns banana.
Run Code Online (Sandbox Code Playgroud)
Fed*_*TIK 163
您可以在MySQL中从空字符串中创建NULL:
SELECT coalesce(NULLIF(email, ''), 'user@domain.com') FROM users WHERE id=1000000;
Run Code Online (Sandbox Code Playgroud)
OMG*_*ies 12
使用ANSI CASE语句/表达式:
SELECT CASE
WHEN LENGTH(col) = 0 OR col IS NULL THEN 'banana'
ELSE col
END AS fruit
Run Code Online (Sandbox Code Playgroud)
SQL或MySQL中没有布尔值.MySQL实际上将值存储为INT,值为零或一:
SELECT CASE
WHEN col = 0 THEN 'banana'
ELSE col
END AS fruit
Run Code Online (Sandbox Code Playgroud)