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

Yii1.1框架中如何反转addSearchCondition查询条件?

实现方案

你可以直接调用addSearchCondition方法的第五个可选参数调整匹配运算符,直接实现NOT LIKE的查询效果,示例代码如下:

$criteria = new CDbCriteria();
// 第五个参数传入 'NOT LIKE' 替换默认的 'LIKE' 即可实现反向匹配
$criteria->addSearchCondition('property', 'FOOBAR', true, 'AND', 'NOT LIKE');
$result = Table::model()->findAll($criteria);

参数说明

  • 第三个参数true为默认值,会自动对搜索关键词中的特殊字符进行转义,避免SQL注入风险
  • 第四个参数'AND'为默认值,代表该条件和其他查询条件用AND连接,有需要可以改成'OR'

如果你需要手动拼接条件的话,也可以用addNotCondition实现,写法如下:

$criteria = new CDbCriteria();
$criteria->addNotCondition('property LIKE :foobar');
$criteria->params[':foobar'] = '%FOOBAR%';
$result = Table::model()->findAll($criteria);

注:你给出的示例SQL中IS NOT LIKE属于非标准写法,标准SQL中直接使用NOT LIKE即可,上述两种Yii写法生成的都是标准语法的SQL语句,和你预期的查询效果完全一致。

内容的提问来源于stack exchange,提问作者k0pernikus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:36:06