Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

'और' और 'या' कथनों को शृंखलाबद्ध करने के लिए कोडइग्निटर get_where का उपयोग करना

कोडनिर्देशक 3.0 के बाद से क्वेरी बिल्डर वर्ग क्वेरी ग्रुपिंग का समर्थन करता है।

डॉक्स से:

$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'

संपादित करें: आपके उदाहरण में आप उपयोग करेंगे:

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

या

$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

यह जांचने के लिए कि क्या कोडनिर्देशक द्वारा उत्पन्न क्वेरी आपके SQL से मेल खाती है, आप इसका उपयोग कर सकते हैं:

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. सी # के साथ MySQL के लिए पैरामीटरयुक्त क्वेरी

  2. पायथन में MySQLdb मॉड्यूल आयात नहीं कर सकता

  3. MySQL लेफ्ट जॉइन के साथ पंक्तियों को हटाना

  4. क्या SQL सर्वर के TIMESTAMP कॉलम जैसी कोई MySQL सुविधा है?

  5. पायथन के माध्यम से कनेक्ट करते समय मैं डिफ़ॉल्ट MySQL कनेक्शन टाइमआउट कैसे बदल सकता हूं?