gpt4 book ai didi

php - 如果另一列包含所有请求值集,如何从表中选择特定列?

转载 作者:行者123 更新时间:2023-11-29 01:19:38 25 4
gpt4 key购买 nike

我在 MySQL 中有一个名为 table1 的表,它包含三列 iduser_id(foreign_key) 和 destination_id(外键)。一个用户可以有多个目的地。

E.g Table1

id user_id destination_id
1 10 2
2 5 3
3 10 4
4 10 5
5 9 10
6 5 12
7 8 2

我在 PHP 脚本中收到来自客户端的请求;该请求包括数组中的目标 ID。

E.g. $request = array('destination_id' => [2,4,5]);

当且仅当特定 user_id 包含所有请求的目的地时,我只想从 table1 获取所有 user_id。

我尝试使用“IN”运算符实现此目的。即

     SELECT user_id FROM table1 WHERE destination_id IN ($requestedDestinationsInCommaSeparatedString)

它给出的行包括 user_id 8 和 user_id 10,但我只需要 user_id 10。我只是想知道有关解决以下问题的概念。我是 SQL 的初学者,任何帮助都会非常感激。谢谢。

最佳答案

您可以通过对目的地进行分组和计数来检查 user_id 是否指代所有请求的目的地。

SELECT user_id
FROM table1
WHERE
destination_id IN (2,4,5)
GROUP BY
user_id
HAVING count(*) = 3
-- count must be the number of elments in (2,4,5)

为此,user_id 和 destination_id 的字段组合在所有记录中必须是唯一的。

关于php - 如果另一列包含所有请求值集,如何从表中选择特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51748864/

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