SQL BUG 写入时不接受null !=
SQL BUG doesn't accept null when write !=
当我写 column!=something 时它也没有选择任何空值和其他东西。为什么会这样?我可以防止这个只是写 AND column is NULL 吗?
您还需要检查 NULL
。
SELECT
*
FROM your_table
WHERE column <> something
OR column IS NULL
注意: 除了 NULL
,你不能将 NULL
与其他任何东西进行比较。
让我们看一下以下代码片段:
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)
The NULL value can be surprising until you get used to it.
Conceptually, NULL means “a missing unknown value” and it is treated
somewhat differently from other values.
To test for NULL, use the IS NULL and IS NOT NULL
是的,您已按照 1000111 指定的方式使用 OR 运算符检查 NULL,而不是 AND。
另外,正如您在使用 OR 时已经知道的那样,如果 WHERE 子句中还有其他 AND 运算符,那么我们需要用方括号 () 将它们括起来
此致
需要单独检查 NULL 条件..
and column is NULL
当我写 column!=something 时它也没有选择任何空值和其他东西。为什么会这样?我可以防止这个只是写 AND column is NULL 吗?
您还需要检查 NULL
。
SELECT
*
FROM your_table
WHERE column <> something
OR column IS NULL
注意: 除了 NULL
,你不能将 NULL
与其他任何东西进行比较。
让我们看一下以下代码片段:
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)
The NULL value can be surprising until you get used to it. Conceptually, NULL means “a missing unknown value” and it is treated somewhat differently from other values.
To test for NULL, use the IS NULL and IS NOT NULL
是的,您已按照 1000111 指定的方式使用 OR 运算符检查 NULL,而不是 AND。
另外,正如您在使用 OR 时已经知道的那样,如果 WHERE 子句中还有其他 AND 运算符,那么我们需要用方括号 () 将它们括起来
此致
需要单独检查 NULL 条件..
and column is NULL