1. sql转义字符
sql转义字符(单引号):
'
案例:
select * from users where name = '''赵二虎'' or ''1'' = ''1''';
-- '是sql中的转义字符,''''表示一个字符串,其中的内容是',因为是在''中,所以要使用'进行转义,即''表示';
2. 模糊查询like的转义字符
2.1 like转义的含义
select * from table_name t where t.name like 'S\_%' escape '\';
-- like在执行模糊查询的时候,有特殊字符,比如%表示匹配任意字符,包括0个,_表示匹配任意一个字符。所以如果要匹配的目标字符中包含“_”的话,需要对“_”进行转义。对like模式中的"_"转义需要使用escape去指定具体的转义字符,指定的是什么,like中就按照什么进行转义。
2.2 like匹配模式的示例
‘Z%’:匹配所有以Z开头的字符;
‘z%h’:匹配所有以z开头且以h结尾的字符;比如zherhuh。
‘z_%’:匹配所有以z开头,中间以任意一个字符,紧接着是任意字符,这个'z%'是等价的,因为'_'表示匹配任意一个字符,所以需要转义。比如zdd,zdgrg,z_fg,zkk_zdgfs等。
3. 案例
向emoticon表的username字段插入三条record,分别包含Z_字符。
查询emoticon表,对username字段进行模糊查询,因为“”是like中的特殊字段,所以需要转义:
不对”“转义进行查询,则会查询到所有包含“Z_”的记录,注意这并不是因为like违背了默认匹配行首的规则,而是因为”_“字符在like的匹配规则中和”%”相似,具有特殊含义,即匹配一个任意的字符;注意%是匹配任意字符,包括0个,%是通配符。
使用like的escape关键字指定like匹配模式中的转义字符:
文档信息
- 本文作者:Marshall