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