场景
查下w_
开头的用户名。
过程
语句为:
select * from user where user_name like 'w_%';
发现查出的结果明显不对,这是怎么回事呢?
原因: 在sql中, 下划线_
表示匹配任意单个字符。
使用的时候有2点:
1、 前面加右斜杠表示转义,如\_
表示下划线。
2、后面加 escape '\'
指明转义字符是右斜杠。
正确的写法:
select * from user where user_name like '%w\_%' escape '\';