今天在调试前台页面查询的时候发现个奇怪的问题:
1 查询"_"的时候会查询出所有数据,数据库语句:select * from platform_user_user t where t.login_name like '%_%'
解决办法:将语句改为:select * from platform_user_user t where t.login_name like '%\_%' escape '\'
2 由于在语句中存在%,于是笔者又检验了一下%,结果也是所有数据都查询出来了
解决办法:对于这个问题,Google是处理了“_”,但是不处理"%"
总结:对输入语句做判断,如果为“_”,将查询语句加上 '%\_%' escape '\',否则保持原样。