[英]How to compare two arrays in mysql query?
我有一个名为mm_test的表,如下所示:-
id educations 1 3,4,6,8,9
我想检查此数组是否包含(4,6) 。 如何使用mysql查询进行检查。 Mysql'IN'命令不适用于我。
我把这样的查询...
select * from mm_test where educations IN (4,6);
但是此查询返回空结果。 请任何人帮助我。
您可以使用find_in_set()
进行此操作:
where find_in_set(4, educations) > 0 and
find_in_set(6, educations) > 0
但是,这通常效率低下。 问题是您的数据结构。 您应该为每个教育使用一个带有一列的联结表,而不是在高度不合适的数据结构(字符串)中存储整数列表。
SELECT *
FROM mm_test
WHERE FIND_IN_SET(4, educations) > 0
AND FIND_IN_SET(6, educations) > 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.