MySQL通过LIKE和AND搜索

时间:2017-03-22 15:56:50

标签: mysql sql-like

我有这样的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   |
+----+----------+-----------+--------+--------+

第一次查询有什么问题?请帮忙。

2 个答案:

答案 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。