おはようございます!
先週に書こうと思って、下書きを書いていたらまさかの寝落ちで1週間経ってしまってた(´・ω・`)
半端に下書き書いていたから、どんな記事を書こうとしたのか思い出すのに苦労しました(笑)
仕事で、ちと悩んだことなので、忘れないように記事にカキカキφ( . . )
CodeIgniterにDataMapperを設定した環境での書き方になるのかな。
仕事上でしているのが、もうある程度組んでいるのを、組んでいっているからです。
DataMapperで、と書いていますけど、べた書きのSQL文でも問題ないです。
というか、SQL文のを見っけて、DataMapperでできるかなって、試したら出来たので大丈夫かと。
SQL文を発行する際に、対象の数値が1だったらこれ、1より上だったらこれ、にして、グループ分けをしたかった処理で悩んだ時の話になります。
WHERE文ではうまくできず、どうにかできないかとググってみたら、カラム指定する箇所で条件式を書けることをしりました。
下記のような記述で、条件に応じて指定カラムに結果が格納されていくことができます。
SELECT CASE WHEN 条件式1 THEN 式1 WHEN 条件式2 THEN 式2 ELSE 式3 END AS カラム名 FROM テーブル名;
これをDataMapperで指定する場合は、下記のような感じに書けば大丈夫です。
$books = new Books(); $books->select(' CASE WHEN impression>1 THEN reprint ELSE new_book END AS impression_type'); $books->get();
そのまんま、SELECT指定する部分に当てはめてやれば、問題なく条件式が適応された値が、カラムに入っていました。
なんか、集計するので、こうしたかった記憶があるんだけどなぁ。
まぁ、でも、こういうやり方があると知ったのはプラスになったので、結果オーライです。
中々、使い所がないかもしれませんけどねヽ(´ー`)ノ