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

आईएन क्लॉज के साथ सिम्फनी 2.3 कच्ची एसक्यूएल क्वेरी

उत्तर:

तो आपने कम से कम दो गलतियाँ की हैं। पहला यह है कि @Alarid ने कहा:आपको अपनी सरणी नहीं लगानी चाहिए। दूसरा यह है कि आपको DoctrineDBALTypes Conversion . का उपयोग करना होगा IN clause . के लिए तैयार कथन चलाते समय।

और अंत में आपकी क्वेरी इस प्रकार है:

$stmt = $this->getDoctrine()->getEntityManager()
        ->getConnection()
        ->prepare('SELECT t1.id , t1.name , t2.start_date , t2.end_date
        FROM table1 t1 , table2 t2
        WHERE t1.id = t2.matchId AND  t1.id IN (:ids)');

$stmt->bindValue('ids', $idSArray, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY);
$stmt->execute();

या वैकल्पिक:

$stmt = $this->getDoctrine()->getEntityManager()
    ->getConnection()
    ->executeQuery('SELECT t1.id , t1.name , t2.start_date , t2.end_date
        FROM table1 t1 , table2 t2
        WHERE t1.id = t2.matchId AND  t1.id IN (:ids)',
        array('ids' => $idSArray),
        array('ids' => \Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
    )
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इनोडब तालिकाओं का निर्माण समय

  2. मैं किसी विशिष्ट तालिका के लिए MySQL इंजन प्रकार की जांच कैसे कर सकता हूं?

  3. क्या मैं अपनी वर्तमान सामग्री को खोए बिना एक अद्यतन संरचना को एक MySQL तालिका में आयात कर सकता हूं?

  4. बड़े 3D बिंदु डेटा सेट के साथ SELECT क्वेरी पर प्रदर्शन बढ़ाना

  5. तालिका को पसंद करें