[CodeIgniter2] アクティブレコードでCONCATを使う
スポンサーリンク
CodeIgniterのアクティブレコードでCONCATを使う方法のメモ。
SQL_CALC_FOUND_ROWS
を使った時と同様、第3引数にfalseを指定します。
$this->db->select( 'data' ); $this->db->from( 'table_name' ); $this->db->like( 'CONCAT(columnA, columnB )' ,'検索語', false ); $this->db->get(); //生成されるSQL文 SELECT data FROM table_name WHERE CONCAT('columnA', 'columnB') LIKE '%検索語%';
$this->db->like()
でCONCAT込みのSQL文を生成するとき、デフォルトではCONCATごとエスケープされてしまいます。第3引数にfalseを指定するとエスケープ処理が行われません。これでCONCATが使えるようになりました。
CONCATを使う場合、値がnullである場合のありえるカラムを検索対象にする場合はIFNULL関数を使わなければなりませんが、その場合もlike()の第3引数にfalseを指定することで使用可能となります。
$this->db->select( 'data' ); $this->db->from( 'table_name' ); $this->db->like( 'CONCAT(columnA, columnB, IFNULL(columnC, "") )' ,'検索語', false ); $this->db->get();
スポンサーリンク
CodeIgniterカテゴリーの投稿
- [CodeIgniter3] クエリービルダーのINSERTでエスケープを行わない
- [CodeIgniter3] CRONでコントローラーのメソッドを呼び出す
- [CodeIgniter3] さくらレンタルサーバー設置時の.htaccess
- [CodeIgniter3] ControllerとViewを作成
- [CodeIgniter3] xampp開発環境へのインストール
- [CodeIgniter2] サイトマップを作る
- [CodeIgniter2] form_open()のメソッドをGETにする
- [CodeIgniter2] 多言語化時にオートロードで任意言語ファイルを読み込む
- [CodeIgniter2] ActiveRecordクラスjoinメソッド
- [CodeIgniter2] アクティブレコードでReplace文を使う