MySQL - Where - 搜索字符串 - MATCH

时间:2010-03-31 08:03:04

标签: sql mysql

快速提问。我有点匆忙,但如果有人能迅速指出我正确的方向,我会非常高兴。

我在db中有一个字段,我们称之为field_a,它返回格式为“20,50,60,80”等的字符串。

我希望进行查询,在此字段中搜索是否存在20。

我可以使用MySQL MATCH还是有更好的方法?

谢谢!

3 个答案:

答案 0 :(得分:3)

更好的方法是以不同方式保存数据。使用WHERE a LIKE '...'MATCH/AGAINST(除了相当慢)你不能轻易搜索“20”......如果搜索“20”,你也会得到“200”;如果你搜索“,20”,你就不会得到“20,50”

答案 1 :(得分:2)

使用FIND_IN_SET

WHERE FIND_IN_SET(20, field_a) != 0

答案 2 :(得分:1)

请注意,你没有得到你真正想要的子串 - 例如LIKE'%20%'也会匹配'50,120,70'。如果你正在使用MySQL,你可能想要使用REGEXP'[[:<:]] 20 [[:>:]]' - 其中有趣的面孔是字边界标记,它将尊重开头/结尾的断点字符串或逗号,所以你不应该得到任何误报。

http://dev.mysql.com/doc/refman/5.1/en/regexp.html