mysql - 选择几个精确值

标签 mysql

我的数据库中有一个这样结构的表:

obj_id - rel_val
4034 - 7366
4034 - 7387
4035 - 7366
4035 - 8051
4035 - 8057

字段“obj_id” - 它是项目 ID 字段。字段“rel_val”- 属性值 id。 例如。 ID 为 4034 的项目 T 恤。设置属性颜色为“红色”,ID 为 7366。属性大小为“M”(此属性值的 ID 为 7387)。

我应该如何编写正确的 sql 查询来获取颜色为“红色”、大小为“M”以及其他更多内容的所有项目。

我现在拥有的:

$sth = $dbh->prepare("SELECT obj_id 
FROM cms3_object_content WHERE rel_val IN ('7343','7355','7368') LIMIT 100");
$sth->execute();
$result = $sth->fetchAll();

我试过使用 operator IN,但如果有任何值 mathces,它会返回 obj_id。

附言对不起,我的英语不好。我希望它能理解我想要什么。

最佳答案

SELECT obj_id 
FROM cms3_object_content 
WHERE rel_val IN ('7343','7355','7368') 
group by obj_id 
having count(distinct rel_val) = 3
LIMIT 100

关于mysql - 选择几个精确值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286149/

相关文章:

php - 使用数据库查询插入记录 (Laravel)

java - 如何同时从表单中获取图像名称和另一个输入字段值到 servlet

mysql 连接日期,其中一个表的日期是一个月前

mysql - 用于演示目的的欺骗 mysql 客户端连接请求

MySQL 嵌套优化

php - 如何获取按日期排序的记录

Mysql Workbench 和来自 jsp 的抛光语言输入

java - 数据截断: Truncated incorrect DOUBLE value: on update

php - 使用 php/html 表单插入 mysql - 不起作用

mysql - 在 MySQL 中声明一个值大于 255 的 VARCHAR 是否明智?