SQL LIKE REGEXP匹配单值和逗号字符串

时间:2014-12-30 07:53:47

标签: mysql sql regex

我正在开发一个以糟糕的方式制作的数据库。我必须在逗号列中找到一个ID。

列值可以是:

  • 6154
  • 5145,6154,4562
  • 161545

我的查询是:

SELECT resource_id,filename,id FROM image WHERE other_vendors = '".$vendor_id."'

$vendor_id将为6154

现在我如何在SQL QUERY中匹配LIKE REGULAR EXPRESSION,其中我获得了逗号字符串中包含6154或6154的所有值。

4 个答案:

答案 0 :(得分:1)

我认为这是最简单的方法:

SELECT resource_id,filename,id FROM image WHERE (','+other_vendors +',') like '%,$vendor_id,%'

答案 1 :(得分:1)

只需使用内置函数find_in_set,在逗号分隔列表中搜索字符串:

SELECT resource_id,filename,id FROM image WHERE find_in_set('6154',other_vendors)

答案 2 :(得分:0)

尝试类似:

SELECT resource_id,filename,id FROM image WHERE other_vendors REGEXP '.*(6154){1}.*'

答案 3 :(得分:0)

SELECT resource_id,filename,id FROM image WHERE other_vendors = '%6154%'