广西公路建设协会网站,扬州市城乡建设局网站,煤炭建设协会官方网站,企业网站排名MySQL的转义字符“\”\0 一个ASCII 0 (NUL)字符。 \n 一个新行符。 \t 一个定位符。 \r 一个回车符。 \b 一个退格符。 \ 一个单引号(“”)符。 \ 一个双引号(“ ”)符。 \\ 一个反斜线(“\”)符。 \% 一个…MySQL的转义字符“\” \0 一个ASCII 0 (NUL)字符。 \n 一个新行符。 \t 一个定位符。 \r 一个回车符。 \b 一个退格符。 \ 一个单引号(“”)符。 \ 一个双引号(“ ”)符。 \\ 一个反斜线(“\”)符。 \% 一个“%”符。它用于在正文中搜索“%”的文字实例否则这里“%”将解释为一个通配符。 \_ select ab\ab as a,ab\ab as b, ab\tab as c, ab\bab as d,ab\\ab as e,ab\\\\ab as f,ab\nab as g; 如果你想要把二进制数据插入到一个BLOB列下列字符必须由转义序列表示 NUL ASCII 0。你应该用\0一个反斜线和一个ASCII 0表示它。 \ ASCII 92反斜线。用\\表示。 ASCII 39单引号。用’\’’表示。 ASCII 34双引号。用’\”’表示。 当SQL语句中使用Like查询且期望匹配的结果中含有\的应当把\替换为\\\\。 比如数据库中text字段有以下三行 id text1 au1224 su5b9e1u9a8c2 \24\a su5b9e1u9a8c3 \24\\a su5b9e1u9a8c 当我们使用下面这三种方式查询时都会得到id 为123三行原因后面会讲。 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后边的字符串除了会在语法解析时转义一次外还会在正则匹配时进行第二次的转义。因此如果期望最终匹配到\就要反转义两次也即由\到\\再到\\\\。 转载于:https://www.cnblogs.com/a-s-m/p/11075903.html