我试图检查值,如果它为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;
它不会推论任何东西。我的错在哪里预先感谢
答案 0 :(得分:0)
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时的情况相同。