2011-08-26 103 views
0

這個問題對你來說可能很簡單。我使用mysql regexp statment。正則表達式從字符串搜索一個數字

更改爲MyQuery是

select * from contents where categories regexp '{myPattern}'; 

類別場區54,25,99,4,2 ...等字符串。

我的問題我如何才能從類別字段中找到數字'4'。

對不起,我的英語。 請幫我。

回答

6

… WHERE FIND_IN_SET('4', categories) > 0

更好的正常化與類別你的數據庫計劃在自己的表中,然後加入這些表連接在一起M:N

+1

用於標準化的+1 –

+0

謝謝knitll,以及當我只搜索4和2時,它是怎麼回事? – maverabil

+0

你是什麼意思? FIND_IN_SET('4',categories)> 0 AND FIND_IN_SET('2',categories)> 0'同時找到兩個類別,用'OR'找到任何類別 – knittl

1

的方式來匹配「含‘4’的任何CVS字符串作爲字符串中值」是:

mycolumn regexp '[[:<:]]4[[:>:]]' 

在MySQL的正則表達式,[[:<:]]表示‘字的開始’和[[:>:]]表示‘字的末尾’。

+0

是的 - 我發佈後檢查,並有一種方法。修改爲顯示它 – Bohemian

0

您可以使用此:

where categories RLIKE '(^|,)4($|,)'; 

categories包含4,隨後,或什麼,並通過,或沒有precedeed這將匹配。

+0

非常感謝你。爲我工作 – maverabil

+1

knittl的解決方案看起來更好;) – arnaud576875

相關問題