gpt4 book ai didi

sql - 检查数组是否值查询的子集?

转载 作者:行者123 更新时间:2023-12-02 08:50:36 24 4
gpt4 key购买 nike

我有一组行

SELECT id from Users WHERE...

1
2
6
8
9

我已经和 array2,3,6

如何在 SQL 中检查该数组是查询结果的子集?

最佳答案

SQL 本身不支持数组,所以我不完全确定如何您存储数字数组,这将影响回答此问题的最佳方式。

也就是说,我会这样做:

SELECT u.id 
FROM Users U
RIGHT JOIN Numbers N
ON U.id=N.Number
WHERE N.Number IN (2,3,6)

这是基本查询;那里的确切细节取决于您将如何检测故障。 u.ID IS NULL 的任何记录都表明它不是子集。如果您实际上并不立即想要这组 ID,您可以将其修改为

SELECT COUNT(*) AS Missing 
FROM Users U
RIGHT JOIN Numbers N
ON U.id=N.Number
WHERE N.Number IN (2,3,6)
AND u.id IS NULL

并且,只要 Missing > 0,您就会知道您没有子集。 (至少在 SQL Server 中,您可以将 int 强制转换为 bit 以获得 0=false,!0=true,如果这对您的应用来说更容易使用的话。)

我们可以添加更多关于您实际尝试做什么的信息的其他细节,但希望这作为一项基本技术是有意义的。

(注意,这一切都假设您的数据库中有一个数字/计数表。它们非常有用,所以如果您还没有,我会设置一个。)

关于sql - 检查数组是否值查询的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804288/

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