如何在mysql查询中比较两个数组?

时间:2015-03-09 12:08:55

标签: php mysql arrays comparison

我有一个名为mm_test的表,如下所示: -

id    educations 
1     3,4,6,8,9

我想检查一下这个数组是否包含(4,6)。如何使用mysql查询检查这个。 Mysql' IN'命令对我不起作用。

我把这样的查询......

select * from mm_test where educations IN (4,6);

但是这个查询返回了空结果。请任何人帮助我。

2 个答案:

答案 0 :(得分:7)

您可以使用find_in_set()

执行此操作
where find_in_set(4, educations) > 0 and
      find_in_set(6, educations) > 0

然而,这通常是低效的。问题是你的数据结构。对于每个教育,您应该使用一个包含一列的联结表,而不是将一个整数列表存储在一个非常不合适的数据结构中 - 一个字符串。

答案 1 :(得分:0)

使用此FIND_IN_SET Manual

SELECT * 
FROM mm_test 
WHERE FIND_IN_SET(4, educations) > 0 
AND FIND_IN_SET(6, educations) > 0;