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