我有一列包含逗号分隔的值。
1,2,3
4,6,7
2,3,8
12234,5467,232445,232455,11223
根据给定的数组标准(例如,1,4,9
),
如何选择值包含任何给定值的行?
我的意思是当我得到1,4,9
时,我需要选择
1,2,3 -- has 1
4,6,7 -- has 4
更新
我有一个表,其中有一列其他实体主键的逗号分隔值。 我明白最初的表格设计者这样做的原因。 其他实体实际上驻留在其他数据库中,这意味着不可连接。或者他或她只是想这样做。
学生表
id name classes
---------------------------
1 John 1,2,3
2 Jane 2,8,233423423
标准
使用给定的逗号分隔类(class)编号,查找就读其中任何类(class)的学生。
given: 1 -> select John
given: 233423423 -> select Jane
given: 1,233423423 -> select Both
最佳答案
您可以使用正则表达式的动态模板。例如:
SET @Criteria='1,4,9';
SELECT `name`
FROM STUDENT
WHERE STUDENT.classes REGEXP concat('(^|,)(', REPLACE(@Criteria, ',', '|'), ')(,|$)');
关于mysql - 如何使用逗号分隔值的交集进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43774451/