Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql中将逗号分隔的值作为精确匹配进行比较_Mysql - Fatal编程技术网

如何在mysql中将逗号分隔的值作为精确匹配进行比较

如何在mysql中将逗号分隔的值作为精确匹配进行比较,mysql,Mysql,假设我有一个名为group的表名,由于某种原因,我在字段X中有逗号分隔的值,现在我想比较一个数组和mysql中的该字段,如果数组匹配完全相同,那么结果应该返回 例如: 我吵架了 1-a,b,c2-x,y,z 因此,如果数组包含: array(b,a,c) // Return row 1 array(z,x,y) // Return row 2 array(a,b) // Return false 您可以使用FIND_IN_SET函数。在要求b、a、c的情况下,以下类似内容适用于您的案例:

假设我有一个名为group的表名,由于某种原因,我在字段X中有逗号分隔的值,现在我想比较一个数组和mysql中的该字段,如果数组匹配完全相同,那么结果应该返回

例如: 我吵架了

1-a,b,c2-x,y,z

因此,如果数组包含:

array(b,a,c) // Return row 1 
array(z,x,y) // Return row 2 
array(a,b) // Return false
您可以使用FIND_IN_SET函数。在要求b、a、c的情况下,以下类似内容适用于您的案例:

select * from table where FIND_IN_SET("b", `column`) AND FIND_IN_SET("c", `column`) AND FIND_IN_SET("c", `column`);
请参见

您可以使用“在集合中查找”功能。在要求b、a、c的情况下,以下类似内容适用于您的案例:

select * from table where FIND_IN_SET("b", `column`) AND FIND_IN_SET("c", `column`) AND FIND_IN_SET("c", `column`);

请参阅

修复数据,使每个查询都不是无意义修复数据,使每个查询都不是无意义如果所有a b和c都在一行中,但有一个d,那么此查询也可以工作,但它不应该检查指定的逗号分隔结果中是否存在值,因为?请不要在没有解释的情况下否决,或者如果你认为这是错误的,请写下你自己的答案。in运算符应使用逗号分隔的列。添加了一个fiddle并在中使用find-set@MohitBumb你找到解决办法了吗?想知道您是否这样做了。如果所有a b和c都在行中,但有一个d,那么此查询也可以工作,但它不应该在中检查指定的逗号分隔的结果中是否存在值,因为?请不要在没有解释的情况下否决,或者如果你认为这是错误的,请写下你自己的答案。in运算符应使用逗号分隔的列。添加了一个fiddle并在中使用find-set@MohitBumb你找到解决办法了吗?我想知道你是否这样做了。