我在使用简单的选择查询时遇到了一个奇怪的问题,无法找到发生了什么。我正在使用下面的 sql 从客户表中获取一些记录。我的查询如下。
SELECT `C`.* FROM `customers` AS `C` WHERE `C`.`typeId`!=9 ORDER BY C.name ASC
我的表结构如下
|id|name|typeId|
|1 |abc |1 |
|2 |abcd|9 |
|3 |xxxx|NULL |
|4 |qwe |NULL |
|5 |xvf |10 |
上表中typeId为整型字段,默认为NULL。数据库是MySql
当我执行上面提到的 SQL 时,我得到除 typeId=9 和 typeId = NULL 之外的所有其他行。我的问题是为什么结果中省略了 typeId=NULL?我用谷歌搜索了很多,找不到任何答案。我在这里做错了什么吗?
最佳答案
试试这个...
SELECT `C`.*
FROM `customers` AS `C`
WHERE `C`.`typeId`!=9
OR `C`.`typeId` IS NULL
ORDER BY C.name ASC
关于具有 NULL 值的 MySql 行未在选择查询中检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20234432/