Yii1.1でSelect句で指定するカラムにSQL関数やCASE文を使用する方法
Yii1.1を使用する案件を対応しているのですが、ナレッジがあまりないので、まとめてみました。
はじめに
YiiではCActiveRecordやCDbCriteriaでSelect句を指定しますが、
COUNT
関数やSUM
関数を指定して取得する事は出来ましたが、
CASE
文やDATE_FORMAT
関数を指定した場合にエラーになったので、
対処方法をまとめてみました。
対応方法
CDbExpressionを使用して対応します。
$criteria = new CDbCriteria();
$criteria->select = [
new CDbExpression("DATE_FORMAT('%Y-%m', t.create_date) AS create_date"),
new CDbExpression("CASE create_id WHEN create_id = 9999999 THEN 管理者 ELSE ... END AS create_user_name"),
...
];
...
$result = Post::model()->find($criteria);
CDbExpressionは、公式サイトでNOW
関数を使うパターンが紹介されています。
今回の実装方法はこの応用になるのかなと思います。
Author And Source
この問題について(Yii1.1でSelect句で指定するカラムにSQL関数やCASE文を使用する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/SRAUFactory/items/ef5d43e68ff7693db802著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .