mysql针对转义字符的模糊搜索


由于urlencode之后会产生很多'%'符号,这个符号在mysql模糊搜索中代表任意字符,显示会出现问题,例如

name字段经过urlencode之后变成‘%E6%9D%8E%E5%87%A1’,如果不加处理直接搜索,如下面的sql语句

select * from tableA where name like '%%E6%9D%8E%E5%87%A1%';

显然,由于有很多'%'符号,查询后的结果和我们想要的不一样。所以需要把encode之后的‘%’加上转义字符'\',下面是php语言的写法

$name = str_replace("%", "\%", $name);

通过转义之后,sql语句变成

select * from tableA where name like '%\%E6\%9D\%8E\%E5\%87\%A1\%';

这样经过encode之后产生的'%'号就只是单纯的字符,在mysql模糊探索中并不代表任意字符。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM