You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:16:37