可能重複:
MySQL - How to search for exact word match using LIKE?如何找到一個確切的單詞而不是單詞的一部分?
例如,如果我試着去獲得與單詞 「曾經」 行,我能做到這一點...
SELECT * FROM 'table' WHERE `title` LIKE %ever%
但是,這也會給我帶來「永遠,但永遠不會」的字樣。
我怎樣才能找到只包含「永遠」作爲自己的單詞的標題?
可能重複:
MySQL - How to search for exact word match using LIKE?如何找到一個確切的單詞而不是單詞的一部分?
例如,如果我試着去獲得與單詞 「曾經」 行,我能做到這一點...
SELECT * FROM 'table' WHERE `title` LIKE %ever%
但是,這也會給我帶來「永遠,但永遠不會」的字樣。
我怎樣才能找到只包含「永遠」作爲自己的單詞的標題?
使用REGEXP
正則表達式使用在你的搜索詞字邊界[[:<:]]word[[:>:]]
匹配:
SELECT * FROM `table` WHERE `title` REGEXP '[[:<:]]ever[[:>:]]'
注意,這是不區分大小寫的默認。對於區分大小寫,則需要在BINARY
模式與之相匹配:
SELECT * FROM `table` WHERE `title` REGEXP BINARY '[[:<:]]ever[[:>:]]'
,因爲它不能使用索引,性能可以說是相當差的大表上不過。
編輯:對不起,我有PCRE的邊界在那裏,MySQL不支持。
您可以使用REGEXP
和[[:<:]]
和[[:>:]]
字界碑:
SELECT *
FROM table
WHERE keywords REGEXP '[[:<:]]ever[[:>:]]'
已經存在,並回答這個問題一個問題:http://stackoverflow.com/questions/5743177/mysql-how - 要搜索的確切詞匹配使用像 – diggersworld