Kenji
kenji****@club*****
2009年 3月 31日 (火) 15:40:30 JST
Kenji です。 On Tue, 31 Mar 2009 13:58:14 +0900 kunitsuji <tsuji****@m-s*****> wrote: > kunitsujiです。 > > やはりそのように書くしかないんですかね。 そのほうが可読性が高いと思います。(笑) それか SQL を生書きでしょうか。 > 中身見てないのですが、 > db->where() > db->where() > をやると、上から順番に文字列結合するだけなんですかね。 > > $this->db->where('((a=1 AND b=1)'); > $this->db->or_where('(a=2 AND b=2))'); > この時点で矛盾したとエラーが出ないということは、その時点では解釈してない > ということですね。 > get()が来たときにwhereの中身を配列から?取り出して結合するということかな。 ええ、そんな感じだったと思います。 // Kenji > >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 mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users