繁体   English   中英

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

[英]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

但是,这通常效率低下。 问题是您的数据结构。 您应该为每个教育使用一个带有一列的联结表,而不是在高度不合适的数据结构(字符串)中存储整数列表。

使用此FIND_IN_SET手册

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM