Yii2查询构建器如何实现带%通配符的LIKE查询?
解决Yii2查询构建器like通配符被转义的问题
要实现WHERE myaddress LIKE 'avenue%12%espe'这样的过滤条件,有两种靠谱的处理方式:
方法一:直接使用带参数绑定的SQL片段
绕过查询构建器的自动转义逻辑,直接编写原生like语句,同时通过参数绑定保证查询安全:$query->andWhere('myaddress LIKE :address', [':address' => 'avenue%12%espe']);方法二:关闭like方法的自动转义开关
Yii2的like查询方法支持第四个参数$escape,将其设为false即可禁止自动转义%、_这类通配符:$query->andWhere(['like', 'myaddress', 'avenue%12%espe', false]);注意:如果你的查询值里包含需要作为普通字符使用的
%或_,需要手动用转义符(比如\)处理,否则会被识别为通配符。
内容的提问来源于stack exchange,提问作者Tomas Grecio Ramirez
相关产品推荐
相关产品推荐

