MySQL中Like操作的转义处理(mysqllike转义)

MySQL中,Like操作是一种常用的查询语句,有时我们会使用它来查询符合特定模式的数据。例如,当我们想要查找名字以“lo”开头的学生的信息的时候,就可以使用Like操作,编写成:

select * from `t_stu` where `name` like ‘lo%’;

然而,当我们在Like待查询字符串中以%或_开始,或者以\开始,后跟其它特殊字符时,就会存在转义处理的时间了。搜索引擎MySQL中将提供转义操作功能,即为匹配原始查询字符串而不是其转义后的版本,可采用下面的语句代码:

select * from `t_stu` where `name` like ‘lo\_%’ escape ‘\’;

同时,如我们之前所说,如果原有查询字符串中以\开头,则后续字符依然要经过转义,使用该类语句的时候都要小心,譬如:

select * from `t_stu` where `name` like ‘lo\\%’ escape ‘\’;

当然,MySQL中既可以使用ESCAPE以及其它转义字符对LIKE操作进行转义,也可以使用转义序列(escape sequences)来处理。通过使用转义序列我们可以将任意字符,无论其是否为查询字符串中的特殊字符,都编码成一种可以有效地搜索到记录的形式:

select * from `t_stu` where `name` like ‘lo\N%’ escape ‘N’;

以上便是MySQL中Like操作的转义处理,通过上述操作SQL可以针对特定情况,结合ESCAPE或者转义序列操作来针对特殊要求的查询进行处理。


数据运维技术 » MySQL中Like操作的转义处理(mysqllike转义)