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

कोडइग्निटर डेटाबेस क्वेरी IN क्लॉज के साथ क्वेरी () का उपयोग कर रहा है

यही सही व्यवहार है। सीआई उन्हें MySQL पर भेजने से पहले उद्धरण से बच निकलता है। आपको शायद फ़िल्टर के लिए एक सरणी का उपयोग करना चाहिए और कुछ इस तरह का निर्माण करना चाहिए (परीक्षण नहीं किया गया;))

$filter = array('a','b','c');
$sql = "SELECT t1.*, t2.* 
     FROM Table1 t1 
     INNER JOIN Table2 t2 
         ON  t1.id = t2.id 
         AND t2.title IN (". implode(',', array_fill(0, count($filter), '?')).") 
         AND t1.type = ? 
     ORDER BY t1.id";
//edit: check if $filter is not an array ( when it is a single value string )
$filter = is_array( $filter ) ? $filter : array( $filter );
$q = $this->db->query( $sql, array_merge( $filter, array( $type ) ) );

आपको क्वेरी को थोड़ा सा फिर से लिखना चाहिए:

$sql = "SELECT t1.*, t2.* 
     FROM Table1 t1 
     INNER JOIN Table2 t2 
         ON  t1.id = t2.id 
     WHERE
         t2.title IN (". implode(',', array_fill(0, count($filter), '?')).") 
         AND t1.type = ? 
     ORDER BY t1.id";



  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. बिगक्वेरी:कई टेबल खोजें और first_seen और last_seen . के साथ एग्रीगेट करें

  3. MYSQL डेटाबेस डेटा के साथ जावास्क्रिप्ट सरणी लोड करें

  4. मैं उन पंक्तियों की आईडी कैसे प्राप्त करूं जिनमें SQL में MAX और MIN मान हैं

  5. mybatis जनरेटर कॉलम नाम पैटर्न NULL या खाली नहीं हो सकता