php - 在 CodeIgniter 上向 OR_LIKE 查询添加括号

标签 php mysql codeigniter

我很难在查询中添加括号。我的查询由 ORANDLIKE 组成。这是我的 MySQL 查询:

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(); 
}

最佳答案

Query grouping允许您通过将 WHERE 子句括在括号中来创建 WHERE 子句组。这将允许您使用复杂的 WHERE 子句创建查询。

$this->db->group_start()
通过向查询的 WHERE 子句添加左括号来开始一个新组。

$this->db->group_end()
通过向查询的 WHERE 子句添加右括号结束当前组。

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->group_start();
    $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);
    $this->db->group_end();
}

return $this->db->get()->result_array(); 
}

关于php - 在 CodeIgniter 上向 OR_LIKE 查询添加括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40755741/

相关文章:

php - Laravel - 无法使 PHP-Vars-To-Js-Transformer 包工作

php - 从 jquery timepicker 读取输入并将其传递给 php 脚本

javascript - 页面更改未保存(在页面重新加载时)

php - 添加到我的 cookie 名称的前缀

php mysql .htaccess

php - 如何在codeigniter中切换数据库

php - 如何使用mysql数据库根据条件更新多行?

php - 背景色 <td> + INSERT Mysql

php - 创建一个数组,然后将所有内容加在一起

codeigniter cookie 过期问题