近日在使用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%';