MySQL检查非空的列

时间:2018-01-08 11:00:36

标签: mysql database

如果列不为空,如何检查它既不是NULL也不是空白,如何检查。在某些语言中有表达式将两者结合起来,在MySQL中有类似的东西吗?

换句话说,有没有办法简化这个查询?

SELECT * FROM `table` WHERE Name != '' AND Name IS NOT NULL;

1 个答案:

答案 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