PHP PDO выбрать и вывести результат первой найденной строки
После того, как 1 день не нашел правильного направления, я надеюсь, что кто-то может мне помочь.
Чего я хочу, так это: Привязка массива к ПДО выполнить инструкцию. Поэтому я использую утверждение WHERE IN в своей подготовке. Пока все хорошо, моя проблема сейчас в том, что нуммер не уникален. В моей базе данных больше строк с этим значением. Мне нужен способ ограничить запрос первой найденной строкой, где nummer f. e. = 1, а затем перейти к следующему значению массива.
Вот код (я нашел его здесь на stackoverflow ;)
$ids = array(1, 2, 3, 7, 8, 9);
$inQuery = implode(',', array_fill(0, count($ids), '?'));
$stmt = $objDb->prepare(
'SELECT *
FROM table
WHERE nummer IN(' . $inQuery . ')'
);
$stmt->execute($ids);
while($row = $stmt->fetch()) {
echo $row['name'] . "<br />";
}
1 ответ:
Я полагаю, что вы хотите добавить
GROUP BY nummer
после вашего предложенияWHERE
.$stmt = $objDb->prepare( 'SELECT * FROM table WHERE nummer IN(' . $inQuery . ') GROUP BY nummer ' );
Edit
Для Postgres попробуйте:
$stmt = $objDb->prepare( 'SELECT DISTINCT ON (nummer) nummer, * FROM table WHERE nummer IN(' . $inQuery . ') ' );