gpt4 book ai didi

MYSQL子集操作

转载 作者:行者123 更新时间:2023-11-29 01:32:51 24 4
gpt4 key购买 nike

有没有办法实现类似的东西:

SELECT *
FROM tb_values
WHERE (value1, value2, value3) SUBSET_OF
( SELECT value
FROM tb_value
WHERE isgoodvalue = true
)

更多信息:我有一个名为项目的表。每个项目都有标签。一个标签可以被多个项目共享。有一个名为 projectTagMap 的映射表。现在用户使用标签来过滤项目。使用 UI 上的复选框选择标签。所以用户选择几个标签来过滤项目。我应该从包含用户选择的所有标签的项目表中选择项目。

最佳答案

根据您的伪代码,我猜您想要检查(动态)值列表是否是 SELECT 提供的另一个列表的子集。如果是,则将显示整个表格。否则,将不会显示任何行。

实现方法如下:

SELECT *
FROM tb_values
WHERE
( SELECT COUNT(DISTINCT value)
FROM tb_value
WHERE isgoodvalue = true
AND value IN (value1, value2, value3)
) = 3

UPDATED 在 OP 的解释之后:

SELECT *
FROM project
JOIN
( SELECT projectid
FROM projectTagMap
WHERE isgoodvalue = true
AND tag IN (tag1, tag2, tag3)
GROUP BY projectid
HAVING COUNT(*) = 3
) AS ok
ON ok.projectid = project.id

关于MYSQL子集操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121779/

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