如何使用MYSQL运算符选择SELECT列中的所有值都必须可用-MYSQL

拉马林加·佩鲁马尔(Ramalingam Perumal)

我想获取具有值为2,17和26的recipes_id条目的列的值ingredient_id

假设ingredient_id缺少2,则不获取记录。

我已经尝试过该IN运算符,但是它显示了其中任何一个值都可用的记录。

这是我要使用的代码:

SELECT recipes_id FROM `recipes_ingredient` WHERE ingredient_id IN (2,17,26)

这是我目前的结果:

+------------+---------------+
| recipes_id | ingredient_id |
+------------+---------------+
|          1 |             2 |
|          1 |            17 |
|          1 |            26 |
|          3 |             2 |
|          4 |             2 |
|          5 |            26 |
+------------+---------------+

这是我想要的输出:

+------------+
| recipes_id |
+------------+
|          1 |
+------------+

我还有其他方法可以在MySQL中做到这一点吗?

1000111

试试这个:

SELECT 
recipes_id 
FROM 
recipes_ingredient 
WHERE ingredient_id IN (2,17,26)
GROUP BY recipes_id
HAVING COUNT(DISTINCT ingredient_id) = 3

解释:

IN只是的简写形式OR

因此,仅IN不能保证一个特定的recipes_id元素可以同时容纳这三个元素。

既然您希望每个结果都recipes_id符合条件(这当然符合条件),这就是为什么要GROUP BY recipes_id发挥作用的原因

后一个HAVING COUNT(DISTINCT ingredient_id) = 3仅用于过滤那些recipes_id持有所有ingredient_id给定的三个s的对象。

您可以离开DISTINCTif<recipes_id,ingredient_id>对是唯一的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用所有运算符选择子查询而无需加入mysql

MySQL使用OR运算符选择

如何使用MySQL NOT EXISTS运算符

使用mysql行值作为mysql运算符

在MySQL中使用IN运算符选择记录的最佳方法

带有一些AND运算符的MySQL SELECT

如何使用php在mysql中使用算术运算符保存值?

如何在JDBC中使用MySQL类似运算符?

SQLAlchemy查询如何使用MySQL的REGEXP运算符?

如何在mysql中正确使用exists运算符?

如何从A列中选择所有不同的值,这些值在mySQL中的B列中具有确定的值

如何在mysql和vb.net中使用带有IN运算符的参数命令

如何在带有 Express 框架的 mysql 中使用 AND 运算符

如何使用MySQL查询选择WordPress中的所有类别?

如何Concat的mysql中单个列的所有值

MySQL:主键的所有部分都必须为非空;如果键中需要NULL,请改用UNIQUE

如何使用PHP对mysql中的所有值求和

MYSQL <=运算符不适用于9999值

如何使用php从mysql DB中添加特定列的所有值?

MySQL IN运算符来自另一列的结果

带有特殊字符混淆的MySQL LIKE运算符

具有变量查询运算符的MySQL函数

在 IN() 运算符中使用 Mysql 存储函数的返回值

在mysql中使用IN运算符获取1292截断的错误双值警告

MySQL xpath串联运算符,如何添加空间?

MySql中“ @”运算符的名称和用途是什么?

:=运算符在mysql中是什么意思?

在MySQL中,此运算符<=>是什么?

PHP:AND 运算符在 mysql 中不起作用