我需要检查一个(或多个)多个值是否存在于SQL数组中。 在其最简单的形式,它会是这个样子:检查SQL数组中的多个值
SELECT
(1, 7, 8) IN (1, 2, 3, 4, 5)
FROM DUAL
显然这种说法是行不通的。它只适用于检查数组中的一个值。但是我需要知道我提供的值中有一个(不是全部!)是否存在于SQL数组中。如果数组中存在一个或多个值,则语句应该返回TRUE;如果没有,则返回FALSE。
我知道我可以只是添加若干检查,例如:然而
SELECT
1 IN (1, 2, 3, 4, 5)
OR 7 IN (1, 2, 3, 4, 5)
OR 8 IN (1, 2, 3, 4, 5)
FROM DUAL
我的编程逻辑提供在阵列形式中的值“(1,7,8)”和值的这个阵列中的量每次我需要运行SQL语句时都会有所不同。如果我可以以某种方式将此数组粘贴到现有的SQL语句中,而不是在每次运行时重新生成SQL语句,并为数组中的每个值创建“OR”语句,那将非常方便。
有没有办法做到这一点?我使用MySQL btw。
Thanx提前,保持良好的编程!
您的“编程逻辑”是否可以传递一个表,因为SQL最适合表,而不是分隔列表? – JNK
这张桌子怎么样? 如果它是这样的: SELECT(1,7,8)FROM DUAL 那么这将是可能的,但我可以将其构建到SQL语句中。我仍然看不到我如何测试SQL数组的值。 –
在.net中就像一个'datatable'或一个数组。逗号分隔的列表不是数组,它是一个字符串。 – JNK