[Codeigniter-users] ふと気になったCIのアクティブレコード

Back to archive index

kunitsuji tsuji****@m-s*****
2009年 3月 31日 (火) 13:58:14 JST


 kunitsujiです。

やはりそのように書くしかないんですかね。
中身見てないのですが、
db->where()
db->where()
をやると、上から順番に文字列結合するだけなんですかね。

$this->db->where('((a=1 AND b=1)');
$this->db->or_where('(a=2 AND b=2))');
この時点で矛盾したとエラーが出ないということは、その時点では解釈してない
ということですね。
get()が来たときにwhereの中身を配列から?取り出して結合するということかな。

>Kenji です。
>
>
>On Mon, 30 Mar 2009 15:09:13 +0900
>kunitsuji <tsuji****@m-s*****> wrote:
>
>> kunitsujiです。
>> 
>> CIのアクティブレコードを使っていてちょっと気になったこと。
>> バグとかじゃありません(笑)
>> 
>> SELECT * FROM hoge 
>> WHERE ((a=1 AND b=1) OR (a=2 AND b=2)) AND c=1;
>> 
>> こういうSQLを目的としていた場合、
>> どう書くんだろう?と思いながら
>> 
>> $this->db->where('((a=1 AND b=1)');
>> $this->db->or_where('(a=2 AND b=2))');
>> $this->db->where('c', 1);
>> としたら正常に上記のSQLが吐き出されていました。
>> 
>> なんか、、、、きもちわるいなぁ。と思ったのでMLに投稿してみました。
>> 
>> 他にいい記述方法あるんでしょうか?
>
>$this->db->where('((a=1 AND b=1) OR (a=2 AND b=2)) AND c=1');
>でどうでしょう?
>
>
>// Kenji
>
>_______________________________________________
>Codeigniter-users mailing list
>Codei****@lists*****
>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index