【问题标题】:How to compare comma separated values in mysql as exact match如何将mysql中的逗号分隔值比较为完全匹配
【发布时间】:2015-07-09 01:37:32
【问题描述】:

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

例如: 我有一排

1 - a,b,c 2 - x,y,z

所以如果数组包含:

array(b,a,c) // Return row 1 
array(z,x,y) // Return row 2 
array(a,b) // Return false

【问题讨论】:

  • 修复数据,让每个查询都不是废话

标签: mysql


【解决方案1】:

您可以使用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`);

请看fiddle

【讨论】:

  • 如果所有 a b 和 c 都在一行中,但还有一个 d,那么这个查询也有效,但它不应该
  • In 将检查指定的逗号分隔结果集中是否存在值
  • 因为……?并且请不要在没有解释的情况下投反对票,或者如果您认为这是错误的,请写下您自己的答案。 in 运算符应使用逗号分隔的列。
  • 添加了一个小提琴并使用了 find-in-set
  • @MohitBumb 你找到解决方案了吗?想知道你是否这样做。
猜你喜欢
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
相关资源
最近更新 更多