【MySql笔记】字符串中的转义字符‘\’

正则表达式判断字符串内是否含有转义字符’\‘

首先sql中‘\’字符与c语言、c++、java等编程语言中类似\\表示\,但sql中单独一个\出现在字符串中且无法组成有效转义字符\字符会被删去,能够组成转义字符时会进行转换无法显示在字符串中的会不显示

set @p="lo\1nc";
select @p;//输出lo1nc

set @p="lo\nc";
select @p;//输出loc

set @p="lo\\nc";
select @p;`//输出lo\nc

set @p="lo\\\nc";
select @p;//输出lo\c

set @p="\r";
select @p;//输出空但不为空

set @p="\\";
select @p;//输出\

当正则表达参数需要\时\\\\表示一个\多余或少于部分被删除,一个\需要几个\才能表示出来要看转义次数,字符串读取过程会针对/进行转义,但作为正则表达参数时会先针对\进行转义每两个\转义成一个\再针对字符串进行转义,参考以下案例

select "loc" regexp "^lo\\\c$";//输入0-3个匹配
select "lo\c" regexp "^lo\\\c$";//输入0-3个匹配
select "lo\\c" regexp "^lo\\\\\\\c$";//输入4-7个匹配
select "lo\\\c" regexp "^lo\\\\\\\c$";//输入4-7个匹配
select "lo\\\\c" regexp "^lo\\\\\\\\\\\c$";//输入8-11个匹配
select "lo\\\\\c" regexp "^lo\\\\\\\\\\\c$";//输入8-11个匹配
select "\r" regexp "\\\r";//输出1,匹配成功
select "\\" regexp "\\\\";//后边\少于4个报错

看不明白参考–>>

你可能感兴趣的:(mysql,笔记,数据库)