2020-08-10 17:27:06 1670次浏览 2条回答 0 悬赏 10 金钱

YII2.0的group by如何使用case when?
我这样写为什么一直报错呢?

$articleList = $query->select($type)
    ->limit($pageSize)
    ->offset(($page - 1) * $pageSize)                
    ->orderBy(
        [
            'case when al_id = 759 then 0 else 1 end' => SORT_DESC, //编号排序倒序
            'al_post_time' => SORT_DESC, //编号排序倒序
        ]
    )                
    ->All();
Database Exception – yii\db\Exception
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'case when al_id = 759 then 0 else 1 end' in 'order clause'
The SQL being executed was: SELECT `al_id`, `al_title`, `al_desc`, `al_thumb`, `al_comment_num`, `al_collect_num`, `al_like_num`, `al_click_num`, `al_post_time`, `al_add_user_id`, `al_type`, `activity_id`, `al_is_hot_article` FROM `aaa` WHERE (`al_type` <> 1) AND (`al_status`=1) ORDER BY `case when al_id = 759 then 0 else 1 end` DESC, `al_post_time` DESC LIMIT 20
Error Info: Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'case when al_id = 759 then 0 else 1 end' in 'order clause'
)
↵
Caused by: PDOException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'case when al_id = 759 then 0 else 1 end' in 'order clause'
in D:\root\PHPTutorial\WWW\ewaasa\vendor\yiisoft\yii2\db\Command.php at line 915
您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
副总裁

PHP学院的中学生

注册时间:2018-10-23
最后登录:2024-04-07
在线时长:168小时1分
  • 粉丝29
  • 金钱4730
  • 威望30
  • 积分6710

热门问题