MySQL用LIKE特殊字符搜索
SQL的LIKE查询语句中,有一些特殊的字符,需要转换后才能搜索到结果:
- ':用于包裹搜索条件,需转为\';
- %:用于代替任意数目的任意字符,需转换为\%;
- _:用于代替一个任意字符,需转换为\_;
- \:转义符号,需转换为\\\\。
以下是一些匹配的举例。
SELECT*FROM`table`WHERE`title`LIKE'a\'b%'; --搜索a'b... SELECT*FROM`table`WHERE`title`LIKE'a\%b%'; --搜索a%b... SELECT*FROM`table`WHERE`title`LIKE'a\_b%'; --搜索a_b... SELECT*FROM`table`WHERE`title`LIKE'a\\\\%';--搜索a\b...
在PHP代码中,可以用这样的方法批量替换:
functionfilterLike($keyword){
$search=array('\'','%','_','\\');
$replace=array('\\\'','\\%','\\_','\\\\\\\\');
returnstr_replace($search,$replace,$keyword);
}
参考资料:
- 关于mysql中特殊字符的使用注意事项
- MySQL5.7ReferenceManual:StringLiterals
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语