Mysql + where子句匹配多行

标签 mysql

我有一个这样的表:

id  image_id  style_id
------------------------
1   45        24        
1   45        25        
1   47        25        
1   45        27        
1   45        28 

我想提取以下所有三个条件都匹配的 image_id 列:

style_id = 24
style_id = 25
style_id = 27

我有这样的查询:

SELECT image_id FROM list WHERE (style_id = 24 AND style_id = 25 AND style_id = 27)

它没有返回 image_id 45。

最佳答案

试试这个:

SELECT image_id 
FROM list 
WHERE style_id IN (24, 25, 27)
GROUP BY image_id
HAVING COUNT(DISTINCT style_id) = 3

DISTINCT 关键字仅在每个 image_idstyle_id 字段有重复值的情况下才是必需的。

关于Mysql + where子句匹配多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36014390/

相关文章:

MySQL 总计行和列

java - 通过 JPA 为 MySQL 节省时间

php - "cache" Eloquent 查询的最佳方式

PHP 从数据库中获取数据不工作

php - 如何为搜索查询设置配额并避免分页占用配额

mysql - 如果 IPV6 IP 存储在 INT(10) UNSIGNED 中,如何从 mysql 数据库检索它们

mysql - 数据库设计 : users and guests

java - JPA:使用 criteriabuilder 查找实体:属性名称与注释不同?

php - 如何在同一个查询中查询 'group by' 查询的结果

python - 为什么手动激活的程序可以很好地工作,但使用 crontab、mysql 和 python 作为守护进程却不能?