我有这样的SQL查询
SELECT * FROM fl_entities WHERE name LIKE '%FTSE%' AND source != 'ABC';
并没有得到结果。但是当我使用
时 SELECT * FROM fl_entities WHERE name LIKE '%FTSE%' AND source is NULL;
我得到了结果
+----+----------+-----------+--------+--------+
| id | name | core_name | type | source |
+----+----------+-----------+--------+--------+
| 31 | FTSE | FTSE | factor | NULL |
+----+----------+-----------+--------+--------+
第一次查询有什么问题?请帮忙。
答案 0 :(得分:1)
将列与某个值进行比较(即使是否定),始终排除null
个值。如果您希望在结果中使用它们,则需要明确指定,例如
SELECT * FROM fl_entities WHERE name LIKE '%FTSE%'
AND (source != 'ABC' OR source is null)
可以找到一个小小的演示here。
答案 1 :(得分:1)
NULLS不等于任何东西,因此您无法通过=或!=比较来比较它们,您必须使用IS NULL或IS NOT NULL。