私の質問に角括弧を追加することができません。私のクエリはOR
,AND
とLIKE
で構成されています。これは私のMySQLのクエリです:CodeIgniterのOR_LIKEクエリに角括弧を追加する
SELECT * FROM (`vendor`) JOIN `vendor_detail` ON `vendor`.`id_vendor`
= `vendor_detail`.`id_vendor` JOIN `klasifikasi` ON `vendor_detail`.`id_klasifikasi` = `klasifikasi`.`id_klasifikasi`
WHERE `vendor_detail`.`id_klasifikasi` = 'K0002' AND
`vendor`.`st_aktif` = 1 AND (`vendor`.`id_vendor` LIKE '%eka%' OR
`vendor`.`nama_vendor` LIKE '%eka%' OR `vendor`.`alamat` LIKE '%eka%'
OR `vendor`.`telp` LIKE '%eka%' OR `vendor`.`mobile` LIKE '%eka%' OR
`vendor`.`fax` LIKE '%eka%' OR `vendor`.`cp` LIKE '%eka%' OR
`vendor`.`telp_cp` LIKE '%eka%' OR `vendor`.`catatan` LIKE '%eka%' OR
`vendor`.`email` LIKE '%eka%')
あなたは私がvendor.st_aktif = 1 AND
後、私のクエリの最後の行に括弧を追加してい見ることができるように。
上記のクエリをCode Igniter Active Recordsに実装するにはどうすればよいですか?
これは私の現在のCIのARです:
function src_vendor_by_name($src_nama,$src_kls){
$this->db->select('*');
$this->db->from('vendor');
$this->db->join('vendor_detail', 'vendor.id_vendor = vendor_detail.id_vendor');
$this->db->join('klasifikasi', 'vendor_detail.id_klasifikasi = klasifikasi.id_klasifikasi');
$this->db->where('vendor_detail.id_dklasifikasi', $src_kls);
$this->db->where('vendor.st_aktif', 1);
if($src_nama != "")
{
$this->db->or_like('vendor.id_vendor',$src_nama);
$this->db->or_like('vendor.nama_vendor',$src_nama);
$this->db->or_like('vendor.alamat',$src_nama);
$this->db->or_like('vendor.telp',$src_nama);
$this->db->or_like('vendor.mobile',$src_nama);
$this->db->or_like('vendor.fax',$src_nama);
$this->db->or_like('vendor.cp',$src_nama);
$this->db->or_like('vendor.telp_cp',$src_nama);
$this->db->or_like('vendor.catatan',$src_nama);
$this->db->or_like('vendor.email',$src_nama);
}
return $this->db->get()->result_array();
}
なぜあなたはカスタムクエリ –
を使用していないのですか?私はそれがアクティブなレコードでないかどうかは確信していません – Simba
ARはネストされた 'WHERE'句AFAIKをサポートしていないので、生のSQLを使うことに戻ります。 –