TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

Yii1.1中CDbCriteria实现NOTLIKE查询

2025-08-19
/
0 评论
/
2 阅读
/
正在检测是否收录...
08/19

php
$excludeWords = array('促销', '特价', '优惠');
$criteria = new CDbCriteria;

foreach ($excludeWords as $word) {
$criteria->addCondition("title NOT LIKE '%{$word}%'", 'AND');
$criteria->addCondition("keywords NOT LIKE '%{$word}%'", 'AND');
$criteria->addCondition("description NOT LIKE '%{$word}%'", 'AND');
}

$articles = Article::model()->findAll($criteria);

高级技巧

使用参数绑定防止SQL注入

为了提高安全性,建议使用参数绑定的方式:

php $criteria = new CDbCriteria; $criteria->addCondition('title NOT LIKE :pattern'); $criteria->params = array(':pattern' => '%敏感词%');

结合其他查询条件

NOT LIKE可以与其他查询条件灵活组合:

php $criteria = new CDbCriteria; $criteria->addCondition("status = 'published'"); $criteria->addCondition("category_id = 5"); $criteria->addCondition("content NOT LIKE '%转载%'"); $criteria->limit = 10;

处理特殊字符

当搜索模式中包含特殊字符时,需要进行转义处理:

php $searchTerm = CDbConnection::getInstance()->quoteValue('%'.addcslashes($term, '%_').'%'); $criteria->addCondition("title NOT LIKE {$searchTerm}");

性能优化建议

  1. 索引使用:确保查询字段已建立适当索引,特别是大文本字段
  2. 避免全表扫描:将NOT LIKE与其他精确匹配条件结合使用
  3. 限制结果集:合理使用limitoffset分页

通过掌握这些技巧,您可以在Yii 1.1项目中高效实现各种复杂的NOT LIKE查询需求,构建更加安全可靠的数据库查询逻辑。

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/36103/(转载时请注明本文出处及文章链接)

评论 (0)