2010-03-31 55 views
0

快速的問題。我有點匆忙,但如果有人能夠迅速指引我走向正確的方向,我會非常高興。MySQL - Where - 搜索字符串 - MATCH

我有一個數據庫中的字段,我們稱之爲field_a返回的格式爲「20,50,60,80」等

字符串我希望做一個查詢,將在這一領域的搜索看看是否存在20。

我可以使用MySQL匹配或者有沒有更好的辦法?

謝謝!

回答

1

只是要小心,你沒有得到你真正想要的一個子 - 例如LIKE‘%20%’也將匹配'50,120,70' 。如果你使用MySQL,你可能想使用REGEXP「[[:<:] 20 [[:>:]]」 - 在滑稽的臉是字界碑,將尊重上開始休息/字符串的結尾或逗號,所以你不應該得到任何誤報。

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

+0

感謝這個:-) – Flukey 2010-03-31 09:29:59

3

更好的方法是不同的保存數據。隨着WHERE a LIKE '...'MATCH/AGAINST(除了是相當緩慢),你不能輕鬆地搜索只是「20」 ......如果你搜索「20」,你會得到「200」太;如果你搜索「 20」,你不會得到‘20,50’

+0

感謝這個:-) – Flukey 2010-03-31 09:29:23

2

使用FIND_IN_SET

WHERE FIND_IN_SET(20, field_a) != 0 
+0

感謝這個:-) – Flukey 2010-03-31 09:28:55