如何使用正則表達式匹配列中某個單詞的單詞?我試過了:使用正則表達式匹配MYSQL中的一個單詞
"select * from table where column regex '/\b".$text."\b/i'"
但是沒有奏效。
如何使用正則表達式匹配列中某個單詞的單詞?我試過了:使用正則表達式匹配MYSQL中的一個單詞
"select * from table where column regex '/\b".$text."\b/i'"
但是沒有奏效。
試試這個:
"SELECT * FROM table WHERE column REGEXP '[[:<:]]" . $text . "[[:>:]]'"
你應該確保,可以在$文本被解釋爲特殊字符的字符都正確轉義。你還應該確保你沒有得到SQL注入。
對於像這樣的東西,MySQL尤其糟糕。我建議使用MATCH AGAINST語法http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html或使用類似SOLR的東西,如果你打算這樣做的話。
我想你想要LIKE子句!
SELECT * FROM table WHERE column LIKE '%value%'
也請閱讀UltimateBrent的答案全文搜索是一個非常好的觀點。
LIKE無法檢測單詞邊界。 – 2010-09-10 23:38:02
我知道這一點。這就是爲什麼我也建議他檢查你的答案。 – RobertPitt 2010-09-10 23:41:40