我有一个名为mm_test的表,如下所示: -
id educations 1 3,4,6,8,9
我想检查一下这个数组是否包含(4,6)。如何使用mysql查询检查这个。 Mysql' IN'命令对我不起作用。
我把这样的查询......
select * from mm_test where educations IN (4,6);
但是这个查询返回了空结果。请任何人帮助我。
答案 0 :(得分:7)
您可以使用find_in_set()
:
where find_in_set(4, educations) > 0 and
find_in_set(6, educations) > 0
然而,这通常是低效的。问题是你的数据结构。对于每个教育,您应该使用一个包含一列的联结表,而不是将一个整数列表存储在一个非常不合适的数据结构中 - 一个字符串。
答案 1 :(得分:0)
SELECT *
FROM mm_test
WHERE FIND_IN_SET(4, educations) > 0
AND FIND_IN_SET(6, educations) > 0;