SQL模糊查詢like和中括號一起用查出來結果不準確是什么原因?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
![]() 我想查帶有“[張三豐]”字符的記錄 select bookname from store where bookname like '%[張三豐]%' ,查出來的結果中有一條沒有“[張三豐]”,是寫法問題嗎? ![]() 中括號 [] 在 LIKE 子句中有特殊語義,LIKE '%[張三豐]%' 中的 [張三豐] 會被解析為 ?字符集合?,表示匹配“張、三、豐”中的任意一個字符(類似正則表達式中的 [ABC])?。因此,該條件實際匹配的是包含這三個字符中任意一個的字符串(如“三兄弟”中的“三”也會觸發匹配),而非完整的“[張三豐]”字符串?。 解決辦法是使用ESCAPE字句對中括號進行轉義,寫法: select bookname from store where bookname like '%/[張三豐/]%' ESCAPE '/' 上面的中括號前加了 “/”,并使用ESCAPE '/' ,這樣就會精確匹配包含“[張三豐]”的值,避免字符集合的誤判?。 該文章在 2025/4/10 16:12:30 編輯過 |
關鍵字查詢
相關文章
正在查詢... |