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)
用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)