sách gpt4 ai đã đi

Cách sử dụng toán tử MYSQL để chọn cột tất cả các giá trị phải có sẵn - MYSQL

In lại 作者:可可西里 更新时间:2023-11-01 08:39:39 28 4
mua khóa gpt4 Nike

我想获取 recipes_id 列的值,以获取包含 ingredient_id 的 2,17 和 26 条目的值。

假设 ingredient_id 2 丢失则不获取记录。

我已经尝试过 TRONG 运算符,但它显示了任何一个值可用的记录。

这是我尝试使用的代码:

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 中还有其他方法可以做到这一点吗?

1 Câu trả lời

Hãy thử cách này:

LỰA CHỌN 
recipes_id
FROM
recipes_ingredient
WHERE ingredient_id IN (2,17,26)
GROUP BY recipes_id
HAVING COUNT(DISTINCT ingredient_id) = 3

解释:

TRONG只是 OR 的缩写形式.

所以,只有TRONG不保证特定的 recipes_id拥有所有这三个。

因为你想要每个 recipes_id 的结果(当然满足条件)这就是为什么 GROUP BY recipes_id开始发挥作用。

后来HAVING COUNT(DISTINCT ingredient_id) = 3用于仅过滤掉那些 recipes_id其中包含所有三个 ingredient_id给定了。

你可以离开 RIÊNG BIỆTnếu như对是独一无二的。

关于mysql - 如何使用 MYSQL 运算符选择列所有值都必须可用 - MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39011081/

28 4 0
可可西里
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com