sql >> データベース >  >> RDS >> Mysql

CodeIgniterActiveRecord-グループORステートメント

    こちら に記載されているように手動で行うことができます :

    あなたの質問について:

    $this->db->where("category = 1 AND (category = 2 OR category = 3)");
    

    3.0-dev

    $this->db->select()
    ->group_start()
    ->or_like([ 'category' => 2, 'category' => 3 ])
    ->group_end()                
    ->where([ 'category' => 1 ]);
    

    更新

    この質問 の回答をご覧ください CI2.2を使用している場合。 承認された以外の回答を選択してください

    または、これ を試してみてください :

    $categories = array(2, 3);
    
    array_walk($categories, function(&$cat) { $cat = 'category = ' . $cat; });
    
    $catstring  = implode(" OR ", $categories);
    $where      = "category = 1 AND ($catstring)";
    // => category = 1 AND (category = 2 OR category = 3)
    
    $this->db->where($where);
    


    1. T-SQL:文字列の連結の反対-文字列を複数のレコードに分割する方法

    2. JDBC-Oracle ArrayIndexOutOfBoundsException

    3. mysqlデータを他のテーブルにUNPIVOT

    4. MYSQLINキーワードがNULL値を考慮しない理由