MySQL 按 LIKE 和 AND 搜索
MySQL searching by LIKE and AND
我有这样的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 |
+----+----------+-----------+--------+--------+
第一个查询有什么问题?请帮忙。
当将一列与某个值进行比较时(即使是否定),null
值总是被排除在外。如果你希望它们出现在你的结果中,你需要明确指定,比如
SELECT * FROM fl_entities WHERE name LIKE '%FTSE%'
AND (source != 'ABC' OR source is null)
可以找到一个小演示 here。
NULLS 不等于任何东西,因此您不能通过 = 或 != 比较它们,您必须使用 IS NULL 或 IS NOT NULL。
我有这样的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 |
+----+----------+-----------+--------+--------+
第一个查询有什么问题?请帮忙。
当将一列与某个值进行比较时(即使是否定),null
值总是被排除在外。如果你希望它们出现在你的结果中,你需要明确指定,比如
SELECT * FROM fl_entities WHERE name LIKE '%FTSE%'
AND (source != 'ABC' OR source is null)
可以找到一个小演示 here。
NULLS 不等于任何东西,因此您不能通过 = 或 != 比较它们,您必须使用 IS NULL 或 IS NOT NULL。