Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan CodeIgniter get_where untuk merangkai pernyataan 'dan' dan 'atau'

Sejak Codeigniter 3.0, kelas pembuat kueri mendukung Pengelompokan kueri

dari dokumen:

$this->db->select('*')->from('my_table')
        ->group_start()
                ->where('a', 'a')
                ->or_group_start()
                        ->where('b', 'b')
                        ->where('c', 'c')
                ->group_end()
        ->group_end()
        ->where('d', 'd')
->get();

// Generates:
// SELECT * FROM (`my_table`) WHERE ( `a` = 'a' OR ( `b` = 'b' AND `c` = 'c' ) ) AND `d` = 'd'

Sunting: dalam contoh Anda, Anda akan menggunakan:

$this->db->select('message, created')->from('logs')
        ->where('username', 'user')
        ->group_start()
                ->where('created >', '1487695796')
                ->where('created <', '1487782196')
        ->group_end()
        ->group_start()
                ->where('message', 'login failure')
                ->or_where('message', 'login success')
                ->or_where('message', 'log out')
        ->group_end()               
        ->order_by('created', 'ASC')  
->get(); 

atau

$this->db->select('message, created')
        ->group_start()
                ->where('created >', '1487695796')
                ->where('created <', '1487782196')
        ->group_end()
        ->group_start()
                ->where('message', 'login failure')
                ->or_where('message', 'login success')
                ->or_where('message', 'log out')
        ->group_end()               
        ->order_by('created', 'ASC')  
->get_where('logs', array('username' => 'user') );

// both generate:
//SELECT `message`, `created` 
//FROM `logs` 
//WHERE `username` = 'user' 
//AND ( `created` > '1487695796' AND `created` < '1487782196' ) 
//AND ( `message` = 'login failure' OR `message` = 'login success' OR `message` = 'log out' ) 
//ORDER BY `created` ASC

untuk memeriksa apakah kueri yang dihasilkan Codeigniter cocok dengan SQL Anda, Anda dapat menggunakan:

echo $this->db->last_query(); // echos last query string


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menggunakan cURL untuk mengambil data tertentu dari situs web dan kemudian menyimpannya ke database saya menggunakan php

  2. MYSQL:pilih bagian teks dan potong berdasarkan lokasi titik

  3. Relevansi pencarian teks lengkap diukur dalam?

  4. Aplikasi Android Xamarin dengan database MySql/Sql online

  5. kueri LIKE mysql membutuhkan waktu terlalu lama