mysql字符串搜索算法查询帮助

时间:2010-08-30 07:48:24

标签: php string search mysql

我的mysql / php表中有一个字符串表。

 id | str  

 3  |  2,4,5,6
 4  |  7,8,9,14
 5  |  3,1,16

如果我使用 LIKE 关键字进行搜索,例如“1”,则结果低于其错误

 id | str  

 4  |  7,8,9,14
 5  |  3,1,16

但预期的结果是

 id | str  
 5  |  3,1,16

因为“1”只在上面一行,但遗憾的是不知道,

帮我解决这个问题,

Nithish。

3 个答案:

答案 0 :(得分:4)

您正在寻找的是FIND_IN_SET功能

  select find_in_set('1', '3,2,1');  => 3
  select find_in_set('1', '3,2,14'); => 0

更好的是,考虑normalizing您的数据库

答案 1 :(得分:1)

使用REGEXP代替LIKE http://dev.mysql.com/doc/refman/5.1/en/regexp.html

str REGEXP'1 [,$]'

答案 2 :(得分:1)

你应该使用REGEXP而不是LIKE
select * from mytable WHERE str REGEXP'(^ |,)1(,| $)'
^代表“字符串的开头”,$代表“字符串的结尾”
有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.1/en/regexp.html