Mysql
 sql >> база данни >  >> RDS >> Mysql

Сурова sql заявка на Symfony2.3 с клауза IN

Отговор:

Така че има поне две грешки, които сте направили. Първото е това, което каза @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. Празни интервали в имената на колони с MySQL

  2. импортирайте mysql данни в kubernetes pod

  3. Грешка в синтаксиса на MySQL в декларацията на променлива

  4. Мониторинг на Percona сървър за MySQL - ключови метрики

  5. Кой запис ще избере GROUP BY в SQL