对CASE Mysql进行空检查

时间:2018-08-16 10:46:28

标签: mysql

我试图检查值,如果它为null(什么也没有显示),我推断出空字符串。我在尝试:

SELECT nullif(order_id, ' ') as order_id FROM label_pass_voucher WHERE order_id = 3447;
select CASE WHEN order_id then order_id else ' ' end as order_id FROM label_pass_voucher WHERE order_id = 3447;

它不会推论任何东西。我的错在哪里预先感谢

2 个答案:

答案 0 :(得分:0)

使用IFNULL(exp1, exp2)

SELECT IFNULL(order_id, ' ') FROM label_pass_voucher WHERE order_id = 3447;

此语法等效于exp1 == null ? exp2 : exp1

答案 1 :(得分:0)

我假设您要查找的查询是:

SELECT IFNULL(order_id, '') AS order_id
FROM label_pass_voucher
WHERE order_id = 3447;

MySQL官方文档:

  

如果expr1不为NULL,则IFNULL()返回expr1;否则返回   expr2。

NULLIF()做的事情略有不同:

  

如果expr1 = expr2为true,则返回NULL,否则返回expr1。这个   与expr1 = expr2 THEN NULL ELSE expr1 END时的情况相同。