[英]Difference Between MySql <> NULL and IS NOT NULL
在我的数据库中有一个varchar(255)列,对于某些记录,它包含空值,当我解雇它时
SELECT * FORM my_table where some_column <> NULL;
没有任何回报
但什么时候被解雇了
SELECT * FORM my_table where some_column IS NOT NULL;
我得到了想要的记录
你能解释一下它们之间的主要区别以及何时使用<>和!=运算符。
您不能使用算术比较运算符(如=,<或<>)来测试NULL。 因为与NULL进行任何算术比较的结果也是NULL,所以无法从这种比较中获得任何有意义的结果。
在mysql中,字符串列可以为空=''或NUL(不是赋值)
所以你应该使用不空
SELECT * FORM my_table where some_column <> '';
要么
SELECT * FORM my_table where some_column != '';
或不等于一个值
SELECT * FORM my_table where some_column <> 'my_value';
SELECT * FORM my_table where some_column != 'my_value';
如果不为null,则必须使用特殊运算符IS NOT NULL
SELECT * FORM my_table where some_column IS NOT NULL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.