我想要的是: 将数组绑定到PDO执行语句。因此,我在PREPARE中使用WHERE IN语句。到目前为止,我的问题很好,我的问题是,nummer并不是唯一的。在我的数据库中有更多具有此值的行。我需要一种方法将查询限制到第一个找到的行,其中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 />";
}
答案 0 :(得分:3)
我认为您希望在GROUP BY nummer
条款之后添加WHERE
。
$stmt = $objDb->prepare(
'SELECT *
FROM table
WHERE nummer IN(' . $inQuery . ')
GROUP BY nummer
'
);
修改强>
对于Postgres尝试:
$stmt = $objDb->prepare(
'SELECT DISTINCT ON (nummer) nummer, *
FROM table
WHERE nummer IN(' . $inQuery . ')
'
);