mysql - 查询返回零结果

标签 mysql sql database

我有一个 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/

相关文章:

SQL:查询帮助

mysql - 分割SQL字段

sql - 如何从 SQL Server 中的多个 XML 文件读取数据?

sql - 如何在一次查询执行中创建 View 并从中选择

python - MySQL插入一个条目,其中值的数量<列数

android - 从 Android 将图像保存在 SQLite 数据库中

mysql - 存储 HTML 文件

MySQL 创建表时报错 #1064

Mysql存储过程使用游标返回null

php - mysql查询从多个中选择,按日期排序