2017-06-21 120 views
0

我想更新我的MYSQL查詢條件,以包括「數組1中的所有數字都存在於數組2」的等價物。MYSQL - 比較2陣列

Array1: (1,14,7) 
Array2: (1,23,45,14,6) 

所以,這個例子會失敗,因爲「7」不存在。如果我使用「IN」,它會要求它們以相同的順序匹配?或者你可以使用它進行比較?

我可以做到這一點作爲MYSQL查詢的一部分,或者我需要先得到結果,然後循環通過他們拋出一些不匹配?

任何幫助不勝感激:-)

+0

MySQL不支持陣列之間的交集,所以你的問題並沒有真正意義。 –

+0

你可以用「table」替換「array」,然後你的問題就可以回答。 –

+0

對不起有關術語的人 - MYSQL真的不是我的東西 - 哈哈。我知道我可以使用一個變量,其中包含一個逗號分隔IN值檢查的列表(例如「IF 5 IN($ val)」 - 其中$ val = 1,2,3,4 - 但我假設正在比較的表達式不能也是一個包含列表的變量? – user2086003

回答

0

順序無關緊要。 你可以使用這個條件

WHERE SomeColumn IN (1,14,7) AND SomeColumn IN (1,23,45,14,6) 

這是給你兩套,這是1 & 14只

+0

非常好 - 我們變暖了,條件需要是「如果所有這些數字(第一列表)都包含在這些數字(第二列表)」中。如果它不能在MYSQL中完成,我可以很容易地得到這些行,然後使用一個循環刪除那些不符合條件的行 - 我只是試圖通過提前取消它們來使它更快。 – user2086003