2015-08-28 95 views
1

嗨我想搜索強大的等於在MySQL表中的字符串。 假設我有以下數據:使用mysql regexp搜索字符串

name  skills 
John  HTML^&*HTML5^&*CSS^&*CSS3 
Roman  HTML^&*CSS 
Anrold CSS^&*CSS3 

這裏^&*用於分析的內容。
如何在mysql中執行regexp搜索,以便當我搜索HTML5時,它只返回名稱John,但不返回john and roman。我試過使用like,但它沒有奏效。

select * from table where skills regexp [HTML] 

但是我也會返回HTML5。但它應該只返回具有HTML的行。

可能有回答說規範化你的表。所以這對我來說不是解決方案,因爲上面只是一個例子。由於我的項目處理表單構建器,它可能包含任何其他帶有選項的字段。

+0

嘗試'SELECT * FROM表,其中技能正則表達式「[[: <:]]HTML[[:>:]]''。或者'select * from table where skill regexp'[[:<:]]HTML5[[:>:]]'' –

+1

也許如果你解釋你如何使用「like」,它會給我們提示爲什麼不是「like」爲你工作。因爲它應該...... – Amarnasan

+1

@ user254153:或許,如果你想得到相反的結果並獲得'Roman'和'Arnold'條目,你需要'SELECT * FROM table WHERE skills NOT LIKE'%HTML5%''。 –

回答

0

你可以簡單地實現在MySQL這個使用like操作員

SELECT * FROM `table` WHERE skills LIKE '%HTML5%' 

LIKE相反的版本是NOT LIKE作爲

SELECT * FROM `table` WHERE skills NOT LIKE '%HTML5%' 
+0

謝謝。它的工作,但我怎麼能不喜歡。我的意思是不等於。 – user254153

+0

@ user254153。我已經更新了我的答案 –