MYSQL LIKE

问题描述
SELECT 'b' REGEXP 'b'; 匹配成功; SQL中b就是一个普通的字符b;正则中匹配的是一个字符b;

SELECT 'b' REGEXP '\b'; 匹配失败;  SQL中b就是一个普通的字符b;正则中匹配的内容是 一个字符\ 和 字符b;

SELECT '\b' REGEXP '\b'; 匹配成功 ;  SQL中\b 代表一个 A backspace character ; 正则中的\b 匹配的也是 A backspace character;

SELECT '\b' REGEXP '\\b'; 匹配失败 ;  SQL中\b 代表一个 A backspace character ; 正则中的\\b 匹配一个字符b; \\在正则中是转义符号;

SELECT '\b' REGEXP '\\\b'; 匹配成功; SQL中\b 代表一个 A backspace character ; 正则中的\\\也把\转义为普通的字符\; 随后字符\ 和字符b结合组成 \b;
\b 又代表 A backspace character ;
现在想确认一点上面的写的内容对不对,尤其是对各个例子的理解, 希望点评一下.

下面是一些其他内容(可忽略)
SELECT 'a\b' LIKE 'a\b'; 执行成功
SELECT 'a\b' REGEXP 'a.b'; 匹配失败, . 可以匹配除了 \ 意外的任何其他字符
SELECT '2.3' REGEXP '[0-9]\\.[0-9]';  使用\\ 进行转义
阅读 2.4k
2 个回答
SELECT "a\b" LIKE '%\b'; 

SELECT "a\\b" LIKE '%b';

https://dev.mysql.com/doc/ref...


Escape Sequence    Character Represented by Sequence
\0    An ASCII NUL (X'00') character
\'    A single quote (') character
\"    A double quote (") character
\b    A backspace character
\n    A newline (linefeed) character
\r    A carriage return character
\t    A tab character
\Z    ASCII 26 (Control+Z); see note following the table
\\    A backslash (\) character
\%    A % character; see note following the table
\_    A _ character; see note following the table

这就是涉及了转义吧。不过自己写sql还没遇到过,感谢提醒。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题