写入时,SQL BUG不接受null!=

时间:2016-08-08 06:08:50

标签: mysql sql mysqli null isnull

当我写列!=某事时它也不会选择任何空值等等。为什么会这样?我可以阻止这个只是写入AND列是NULL吗?

3 个答案:

答案 0 :(得分:2)

您还需要检查NULL

SELECT 
*
FROM your_table
WHERE column <> something
OR column IS NULL

注意:您无法将NULLNULL之外的任何内容进行比较。

让我们看一下以下代码片段:

SET @v := NULL;
SELECT @v = NULL;
Result: NULL; Because NULL can be only compared using IS NULL

SELECT @v IS NULL;
Result: 1 (i.e. TRUE)
  

在您习惯之前,NULL值可能会令人惊讶。   从概念上讲,NULL表示“缺少未知值”并对其进行处理   与其他价值观略有不同。

     

要测试NULL,请使用IS NULL和IS NOT NULL

WORKING WITH NULL VALUES IN MYSQL

答案 1 :(得分:1)

是的,您使用OR运算符检查NULL为1000111指定,而不是AND。

正如您在使用OR时已经知道的那样,如果WHERE子句中还有其他AND运算符,那么我们需要用括号()

将它们括起来。

此致

答案 2 :(得分:1)

需要单独检查NULL条件..

and column is NULL