• MySQL like查询语句中,结果包含反斜杠 字符的,需要替换成四个反斜杠 \\


    当SQL语句中使用Like查询,且期望匹配的结果中含有""的,应当把""替换为"\\"。
    
    比如数据库中text字段有以下三行:
    
    id               text
    1                au1224 su5b9e1u9a8c
    2                24a su5b9e1u9a8c
    3                24\a su5b9e1u9a8c
    
    当我们使用下面这三种方式查询时,都会得到id 为1,2,3三行,原因后面会讲。
    
    select * from test_table where text like "%24%";
    select * from test_table where text like "%\24%";
    select * from test_table where text like "%\24%";
    
    只有像下面这样使用四个反斜杠"\\"查询时,才会得到期望的包含"24"的结果(id为2、3的两行)。
    
    select * from test_table where text like "%24\\%";
    进一步,如果期望查询到的结果更准确,比如只得到id为2的第二行,应该像下边这样查询。
    
    select * from test_table where text like "%24\\a%";
    同理,只得到id为3的第三行,匹配两个反斜杠"\",应该使用八个反斜杠"\\\\":
    
    select * from test_table where text like "%24\\\\a%";
    原因其实很简单,在mysql中,反斜杠在字符串中是转义字符,在进行语法解析时会进行一次转义,
    所以当我们在insert字符时,insert "\" 在数据库中最终只会存储""。而在mysql的like语法中,
    like后边的字符串除了会在语法解析时转义一次外,还会在正则匹配时进行第二次的转义。因此如果期望最终匹配到"",就要反转义两次,也即由""到"\"再到"\\"。




  • 相关阅读:
    Root resource classes
    web.xml文件的作用
    Mac OS X 快捷键(完整篇) 转载
    Eclipse快捷键大全(转载)
    mac os 下如何清除/切换svn eclipse插件的用户
    N-Queens II
    接口是永远不能被实例化的
    Chpater 10: Sorting
    Java 理论和实践: 了解泛型
    EMQ X + ClickHouse 实现物联网数据接入与分析
  • 原文地址:https://www.cnblogs.com/l10n/p/14214794.html
Copyright © 2020-2023  润新知