1

これを一部として含むクエリがあります:

$this->db->where(array(
                 'jobs.open_intentions' => 1,
                 'jobs.open'            => 1, 
                 'jobs.pending'         => 0,
                 'jobs.awarded'         => 0));

これは問題なく動作しますが、その形式は好きではありません。実際には、次のように書きたいと思います

$this->db->where('jobs.open_intentions', 1) 
         ->where('jobs.open', 1) 
         ->where('jobs.pending', 0)
         ->where('jobs.awarded', 0);

私は知っていますが、とにかく、私の質問は、ある方法を他の方法よりも選択する必要がある理由はありますか、それとも単なる好みの問題ですか?

4

3 に答える 3

1

意味的に言えば、後者 (複数whereの s) は複数のAND-clauses のように感じます。前者では、意図が不明確です (API ドキュメントを見ないと)。

于 2012-08-29T02:20:12.197 に答える
1

後者の方法が一般的に使用されますが、単純さと明確なコードのために、このようにすることもできます

$where  =    array(
             'jobs.open_intentions' => 1,
             'jobs.open'            => 1, 
             'jobs.pending'         => 0,
             'jobs.awarded'         => 0
             );
$this->db->where($where);
于 2012-08-29T09:12:20.237 に答える
0

後者には、or_where、where_in、or_where_in などのさまざまな where 句を、以前のものではかなり難しいクリーンなコードで使用できるという利点があります。ただし、単一の演算子を使用している場合は、両方とも同じです。

于 2012-08-30T09:51:28.790 に答える