У меня есть массив полей я, возможно, нужен искать в моей БД:Подготовленное Заявление с переменным массивом
$locations = array(
2,3,5
);
Количество мест может отличаться, и я хочу, чтобы создать подготовленное заявление (с доктриной в Symfony2), что делает то же самое, как это:
SELECT * FROM locations WHERE start = 1 AND (end = 2 OR end = 3 OR end = 5)
(я думаю) Я знаю, как использовать подготовленные заявления, в общем, как это:
$query = $em->createQuery(
'SELECT l
FROM AppBundle:Location l
WHERE l.start > :start
AND (l.end = :end1
OR l.end = :end2
OR l.end = :end3)
ORDER BY l.duration ASC'
)
->setParameter('start', '1')
->setParameter('end1', '2')
->setParameter('end2', '3')
->setParameter('end3', '5');
но как я могу сделать это динамически, если у меня нет размера массива?
Любой намек оценили!
На MySQl есть функция IN, которая позволяет вам проверять массивы. – Christian
похоже на: http://stackoverflow.com/questions/17589626/symfony2-3-raw-sql-query-with-in-clause и http://stackoverflow.com/questions/5929036/how-to-use- where-in-with-doctrine-2 – Terminus