我有一个 SQL 查询:
SELECT count(DISTINCT(email_address))
FROM Mytable
WHERE TableID = '101'
上面的查询运行良好。
我想获得电子邮件地址的结果,其中 TableID 具有不同的值,例如 123,421。
那么,当我编写以下查询时,为什么在 MySQLWorkbencch 中返回的结果为 0?
SELECT count(DISTINCT(email_address))
FROM Mytable
WHERE TableID = '101'
AND TableId = '123'
AND TableID = '421'
最佳答案
使用OR
代替AND
。使用 AND
,您需要一个列值等于 3 个不同的常量值。这违反了宇宙法则。
SELECT count(DISTINCT(email_address))
FROM Mytable
WHERE TableID = '101' OR TableId = '123' OR TableID = '421';
或者,您可以使用 IN
子句。就实际执行而言,它们是等效的,但在某些情况下,IN
可能更易于阅读,尤其是当列表变长时:
SELECT count(DISTINCT(email_address))
FROM Mytable
WHERE TableID IN ('101', '123', '421');
关于mysql - 查询返回零结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24690347/