亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在MySQL中搜索“全字匹配”

在MySQL中搜索“全字匹配”

搖曳的薔薇 2019-09-02 08:27:00
我想寫一個SQL查詢,在文本字段中搜索關鍵字,但只有當它是“全字匹配”時(例如,當我搜索“rid”時,它不應該匹配“arid”,但它應該匹配“一個擺脫”。我正在使用MySQL。幸運的是,性能在這個應用程序中并不重要,數據庫大小和字符串大小都很小,但我更喜歡在SQL中而不是在PHP中驅動它。
查看完整描述

3 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

您可以使用REGEXP和[[:<:]]和[[:>:]]字邊界標記:


SELECT *

FROM table 

WHERE keywords REGEXP '[[:<:]]rid[[:>:]]'


查看完整回答
反對 回復 2019-09-02
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

找到一個答案來防止經典單詞邊界[[::<::]]與特殊字符沖突,例如。@#$%^&*


更換..


SELECT *

FROM table 

WHERE keywords REGEXP '[[:<:]]rid[[:>:]]'

有了這個..


SELECT *

FROM table 

WHERE keywords REGEXP '([[:blank:][:punct:]]|^)rid([[:blank:][:punct:]]|$)'

后者匹配(空格,制表符等)|| (逗號,括號等)|| 開始/結束。更“完成”的單詞邊界匹配。


查看完整回答
反對 回復 2019-09-02
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

您可以使用like通配符標記來捕獲可能性(在開始,結束,中間和單獨),這樣的事情就足夠了:


選擇blah blah blah,像'rid%'這樣的列或像'%rid'這樣的列或像'%rid%'或column ='rid'這樣的列


查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關注
  • 738 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號