查询返回零结果

roc*_*cky 0 mysql sql database

我有一个SQL查询:

SELECT count(DISTINCT(email_address))

FROM Mytable

WHERE  TableID = '101'
Run Code Online (Sandbox Code Playgroud)

上面的查询运行正常.

我希望得到电子邮件地址的结果,TableID有不同的值,如123,421.

那么,当我编写以下查询时,为什么我在MySQLWorkbencch中返回0结果?

SELECT count(DISTINCT(email_address))

    FROM Mytable

    WHERE  TableID = '101'
    AND    TableId = '123'
    AND    TableID = '421'
Run Code Online (Sandbox Code Playgroud)

Rob*_*sen 5

OR而不是AND.使用时AND,您需要一个列值等于3个不同的常量值.这违反了宇宙的规律.

SELECT count(DISTINCT(email_address))
FROM Mytable
WHERE TableID = '101' OR TableId = '123' OR TableID = '421';
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用该IN子句.在实际执行方面,它们是等效的,但在某些情况下IN可能更容易阅读,特别是如果列表变得更长:

SELECT count(DISTINCT(email_address))
FROM Mytable
WHERE TableID IN ('101', '123', '421');
Run Code Online (Sandbox Code Playgroud)