我需要檢查一個(或多個)多個值是否存在於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