2017-06-21 121 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