如果列不为空,如何检查它既不是NULL也不是空白,如何检查。在某些语言中有表达式将两者结合起来,在MySQL中有类似的东西吗?
换句话说,有没有办法简化这个查询?
SELECT * FROM `table` WHERE Name != '' AND Name IS NOT NULL;
答案 0 :(得分:2)
不,这是您可以执行此搜索的唯一方法。我建议设置默认值NULL
或空字符串,以便您知道会发生什么。获得默认设置后,您可以将所有空值更新为该默认值。
如@philipxy在评论中所述:
接受的答案是错误的"有没有办法简化此查询?"。
SELECT * FROM table WHERE Name != ''
有效。WHERE
保留其条件为真的行。如果name为null,那么不等式为null&该行被删除。
我没想到这是对的,但经过测试我发现你是对的! 1
select * from users;
+----+------+
| id | name |
+----+------+
| 1 | John |
| 2 | |
| 3 | NULL |
+----+------+
select * from users where name != ''
+----+------+
| id | name |
+----+------+
| 1 | John |
+----+------+
考虑到这一点,我仍然建议您设置默认值NULL
。