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
热门推荐
1 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法