[Codeigniter-users] SQLクエリの生成について

Back to archive index

decoy youtu****@gmail*****
2008年 7月 8日 (火) 23:34:01 JST


decoyです。

kunitsujiさん、こんばんは。

> $this->db->where("start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y-%m-%d 
> %H:%i:%s')");
> $this->db->where("end_day >= DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y-%m-%d 
> %H:%i:%s')");
> $this->db->get("c_access_log");
>
> これでいけますね。

上記、了解です。
やっぱりベタ書きに近い形になってしまうようですね。

// decoy

----- Original Message ----- 
From: "kunitsuji" <tsuji****@m-s*****>
To: "decoy" <youtu****@gmail*****>; 
<codei****@lists*****>
Sent: Tuesday, July 08, 2008 12:41 AM
Subject: Re: [Codeigniter-users] SQLクエリの生成について


>  kunitsujiです。
>
> $this->db->where("start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y-%m-%d
> %H:%i:%s')");
>        $this->db->where("end_day >= DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y
> -%m-%d %H:%i:%s')");
>        $this->db->get("c_access_log");
>
> これでいけますね。
> 生成されたSQLは
> 0.0000   SELECT * FROM (`c_access_log`) WHERE `start_day` <= DATE_FORMAT
> (CURRENT_TIMESTAMP(),'%Y-%m-%d %H:%i:%s') AND `end_day` >= DATE_FORMAT
> (CURRENT_TIMESTAMP(),'%Y-%m-%d %H:%i:%s')
> です。
>
>>decoyです。
>>
>>kunitsujiさん、こんばんは。
>>いつもいろいろとありがとうございます。
>>
>>> '%Y-%m-%d %H:%i:%s'が¥がついてしまうということですよね?
>>
>>%Y-%m-%d %H:%i:%sの前後の'に\がついてしまう事と
>>DATE_FORMAT()の前後に'がついてしまいますね。
>>
>>
>>> $start_day = "start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d
>>> %H:%i:%s')";
>>> $this->db->where($start_day);
>>> $query = $this->db->get('c_access_log_id');
>>
>>やっぱり上記のような書き方にするしかないんでしょうかね?
>>仮にそうならNOW()等の関数を利用した演算子での比較は
>>CIのActive Recordクラスでは不可能というところでしょうか?
>>
>>// decoy
>>
>>----- Original Message ----- 
>>From: "kunitsuji" <tsuji****@m-s*****>
>>To: <codei****@lists*****>
>>Sent: Monday, July 07, 2008 11:45 AM
>>Subject: Re: [Codeigniter-users]SQLクエリの生成について
>>
>>
>>>  kunitsujiです。
>>>
>>> こんな感じで。OKですね。
>>>
>>> $start_day = "start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %
>>> H:%i:%s')";
>>> $this->db->where($start_day);
>>> $query = $this->db->get('c_access_log_id');
>>>
>>>
>>>>
>>>>decoyさん、こんにちは。
>>>>自分active recorクラスを使わないので何とも言えませんが、
>>>>'%Y-%m-%d %H:%i:%s'が¥がついてしまうということですよね?
>>>>
>>>>$ymdstr = '%Y-%m-%d %H:%i:%s'
>>>>として
>>>>? で渡すのはむりですかね?w
>>>>やってみてませんが。。。。これからやってみますw
>>>>
>>>>
>>>>>decoyです。
>>>>>
>>>>>WHERE句に
>>>>>start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %H:%i:%s')
>>>>>AND end_day >= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %H:%i:%s')
>>>>>というものを使いたい場合
>>>>>Active Record クラスのwhereメソッドやget_whereメソッドに
>>>>>どのように書けばクエリが正しく生成されますでしょうか。
>>>>>
>>>>>1.
>>>>>$this->db->get_where(
>>>>>    テーブル名,
>>>>>    array(
>>>>>        'start_day <=' => "DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d
>>>>>%H:%i:%s')",
>>>>>        'end_day =>' => "DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d
>>>>>%H:%i:%s')",
>>>>>    ),
>>>>>);
>>>>>
>>>>>2.
>>>>>$this->db->where('start_day <=', "DATE_FORMAT(CURRENT_TIMESTAMP(),
>>>>>'%Y-%m-%d
>>>>>%H:%i:%s')");
>>>>>$this->db->where('end_day >=', "DATE_FORMAT(CURRENT_TIMESTAMP(),
>>>>>'%Y-%m-%d
>>>>>%H:%i:%s')");
>>>>>$this->db->get(テーブル名);
>>>>>
>>>>>1や2のやり方でやった場合、下記のようになってしまい正しく生成されませんでし
>>>>>た。
>>>>>
>>>>>
>>>>>start_day <= 'DATE_FORMAT(CURRENT_TIMESTAMP(), \'%Y-%m-%d %H:%i:%s\')'
>>>>>end_day >= 'DATE_FORMAT(CURRENT_TIMESTAMP(), \'%Y-%m-%d %H:%i:%s\')'
>>>>>
>>>>>$this->db->query(クエリ直書き);すれば意図している結果は返ってきますが
>>>>>出来るだけ避けたいと考えております。
>>>>>
>>>>>以上、宜しくお願い致します。
>>>>>
>>>>>_______________________________________________
>>>>>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
>>>
>>> _______________________________________________
>>> 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 




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