具有 NULL 值的 MySql 行未在选择查询中检索

标签 mysql sql

我在使用简单的选择查询时遇到了一个奇怪的问题,无法找到发生了什么。我正在使用下面的 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/

相关文章:

php - 使用 1 个查询从 2 个表中删除数据

mysql - #1064 - 您的 SQL 语法错误无法更改表以创建外键

sql - 为什么这个查询运行缓慢?

mysql - 在 MySQL 表中将当前日期作为默认值插入

mysql - 如何使 Between 子句的上限和下限依赖于 group by 子句定义的组

php - SELECT * FROM tabla WHERE fec <= de 服务器的日期和时间(无 PC 时间)

mysql - Django 对象获取小数匹配

mysql - 插入重复键更新当前时间戳

sql - 在表变量上创建索引

sql - 如何使用sql生成随机数?