【问题标题】:IfNULL function in yii does not workyii 中的 ifNULL 函数不起作用
【发布时间】:2014-07-22 13:18:13
【问题描述】:

在我的模型中我写道:

$criteria->select =  ' ( select avg( IfNULL( TR.stars_rating_type_id , 0) ) as stars_rating_type_id from '.$tablePrefix.'tour_review as TR where TR.tour_id = T.id and TR.status = \'A\' ) as reviews_avg_rating ';

我得到错误:

活动记录“Tour”正在尝试选择无效列“(选择 avg( IfNULL( TR.stars_rating_type_id". 注意,该列必须存在于 表或者是一个带有别名的表达式。

The reason is that I add "IfNULL( ..., 0)" function in subquery to escape "null" in result set.

没有它我必须进行额外的验证并设置0以防null。

如果我使用 " SELECT ( select avg( IfNULL( TR.stars_rating_type_id, 0) ) as stars_rating_type_id..." 测试原始 sql,它可以正常工作, 这就是 yii 方面的问题。如何解决?

Yii 1.1.14
谢谢!

【问题讨论】:

  • 你为什么不关注 $criteria->select = "column names" , $criteria->from = "tableName" ,你在 $criteria->select 下输入整个查询

标签: sql yii subquery criteria ifnull


【解决方案1】:

看一下说明书:

http://www.yiiframework.com/doc/api/1.1/CDbCriteria

选择参数接收将要搜索的列,而不是孔查询

【讨论】:

    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 2021-08-26
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多