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 编辑过 |
关键字查询
相关文章
正在查询... |