近日在使用mysql的like查询用户时,当用户姓名中含有" ' ","%","_",,"\"等特殊符号时,按以往的查询方式,并不能得出想要的结果。
查阅资料得知:在遇到这些特殊字符时,需要对字符进行转义。
- ':用于包裹搜索条件,需转为\';
- %:用于代替任意数目的任意字符,需转换为\%;
- _:用于代替一个任意字符,需转换为\_;
- \:转义符号,需转换为\\\\。
以下是一些匹配的举例。
1,搜索a'b...
SELECT * FROM user WHERE name LIKE 'a\'b%';
2,搜索a%b...
SELECT * FROM user WHERE name LIKE 'a\%b%';
3,搜索a_b...
SELECT * FROM user WHERE name LIKE 'a\_b%';
4,搜索a\b...
SELECT * FROM user WHERE name LIKE 'a\\\\b%';