回答
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为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
,并在任何缺少的是> 0,你就知道你没有一个子集。 (在SQL Server中,至少可以将int转换为一点来获得0 = false,如果应用程序更易于使用,则0 = true。)
其他详细信息我们可以添加更多关于什么的信息你实际上正在努力,但希望这是一个基本的技术是有道理的。
(NB这一切假设你已经在你的数据库有一个数字/理货表。他们是非常有用的话,如果你有没有准备好,我会得到一个成立。)
使用Dynamic SQL:
declare @cmd varchar(200)
select @cmd = "select id from Users WHERE id in (" + @array + ")"
exec(@cmd)
不,不是'IN'子句,您的查询正在做另一种方式,使选定的ID将从数组限制。 – 2012-01-10 13:55:29
你想检查2,3,6是否都在表中?或者他们按照这个顺序出现?究竟是什么? – 2012-01-10 13:57:58
如果你想检查这个列表是否是一个确定的子集,那么你还需要计算数组中元素的数量,并将其与此操作中返回集的长度进行比较。 – eftpotrm 2012-01-10 15:32:24
你必须逐个检查每个记录/项目,再算上他们。
如果JOIN的大小与数组大小相同,则该数组是该表的子集。
这里是假设你的数组中的一个表的例子...
SELECT
COUNT(*)
FROM
Users
INNER JOIN
search
ON search.id = Users.id
HAVING
COUNT(*) = (SELECT COUNT(*) FROM search)
如果你能填充一个栏表格,你需要再次进行测试,那么你可以做到这一点的值。
Select count(*)
From
(
Select id
From users
Intersect
Select id
From testValues
) test
如果count等于您正在测试的值的数量,则该数组将形成子集。
当然这假定您正在使用带相交的SQL变体。德姆的解决方案应该无处不在。 – 2012-01-10 14:10:48
- 1. 检查数组是否是其他数组的子集。 Java
- 2. 检查如果一个数组是另一个数组的一个子集(但检查对一个属性)
- 3. PHP检查数组值是否唯一
- 4. 检查的值是一个查询
- 5. 检查一个值是否是一个多维数组
- 6. 如何检查一个数组是否是另一个数组的子序列?
- 7. angularjs检查数组值是否在另一个数组中
- 8. 检查一个数组是否排序
- 9. 如何检查一个查询是否存在多个值
- 10. 检查字典是否是另一个字典的子集
- 11. 检查Python数组是否只包含一组数字集
- 12. 可以检查一个集合或子集合是否存在?
- 13. 检查数组中是否有一个数组是空的
- 14. 检查是否一个数组包含(仅)数值
- 15. 如何检查数组参数是否包含一个值
- 16. 检查一个数组是否具有不同于零的值
- 17. 如何检查值是否存在一个数组中的Jquery
- 18. 如何检查一个子查询的结果中是否存在一个ID?
- 19. 检查数组值是否存在
- 20. 检查数组值是否为空
- 21. 检查数组中是否存在值
- 22. 检查值是否在数组中
- 23. 检查一个数组是否是索引数组
- 24. JSTL检查一个数组中的值是否与第二个数组
- 25. indexof - 检查一个值是否已经在javascript数组中)
- 26. javascript - 如何检查数组是否至少有一个负值?
- 27. 如何检查Ruby数组是否包含多个值之一?
- 28. 检查数组值是否从另一个数组值设置PHP?
- 29. 检查一个值是否在与LINQ的集合中
- 30. NHibernate的查询记录,查询一个子集合的孩子价值
可能[SQL选择所有存在子集的行](http://stackoverflow.com/questions/8425232/sql-select-all-rows-where-subset-exists) – onedaywhen 2012-01-10 14:13:24