gpt4 book ai didi

mysql - WHERE(集合)IN(集合)

转载 作者:行者123 更新时间:2023-11-29 04:05:46 27 4
gpt4 key购买 nike

编辑:我似乎问错了这个问题。

我正在尝试寻找一种方法来查询一个集合是否在另一个集合中可用。例如:

SELECT * FROM something
WHERE (1, 3) IN (1, 2, 3, 4, 5)

在这种情况下,1 和 3 在集合 (1, 2, 3, 4, 5) 中。另一个例子:

SELECT * FROM something
WHERE (1, 3) IN (1, 5, 7, 9);

在这种情况下,1 和 3 不在集合 (1, 5, 7, 9) 中,因此不应从表中提取任何内容。

最佳答案

注意:这回答了原问题,这似乎与OP修改后的问题无关。

您可以通过以下方式获取完成所有三个级别的用户:

SELECT cl.user_id
FROM completed_levels cl
WHERE cl.id IN (3, 5, 7)
GROUP BY cl.user_id
HAVING COUNT(DISTINCT cl.id) = 3;

(注意:如果给定用户的 ID 是唯一的,则不需要 DISTINCT。)

然后,您可以使用 JOIN 或类似的结构获得您想要的:

SELECT u.*
FROM users u JOIN
(SELECT cl.user_id
FROM completed_levels cl
WHERE cl.id IN (3, 5, 7)
GROUP BY cl.user_id
HAVING COUNT(DISTINCT cl.id) = 3
) cu
ON cl.user_id = u.id;

关于mysql - WHERE(集合)IN(集合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41483503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com