mysql select query无法获取具有null值的数据

use*_*443 2 mysql null

在此输入图像描述

在此表中,如果我进行以下查询

select * from table where order_id != 1
Run Code Online (Sandbox Code Playgroud)

我想,我应该得到第18行和第19行.但相反,查询不能取任何行.

我可以像这样重写查询

select * from table where (order_id != 1 or order_id is null)
Run Code Online (Sandbox Code Playgroud)

并且它获取预期的数据,但是第一个查询不应该能够获取行18 & 19吗?

Pra*_*een 5

Docs

NULL你习惯它之前,这个价值可能会令人惊讶.从概念上讲,NULL表示" a missing unknown value",并且它与其他值的处理方式略有不同.

要测试NULL,请使用IS NULLIS NOT NULL运算符

您不能使用算术比较运算符=, <, or <>来测试NULL.

因为任何算术比较的结果NULL也是NULL,所以你不能从这种比较中获得任何有意义的结果.