PHP PDO 选择并输出第一个找到的行结果


PHP PDO Select and output first found row result

在1个下午没有找到正确的方向之后,我希望somone可以帮助我。

我想要的是:将数组绑定到 PDO 执行语句。因此,我在准备中使用 WHERE IN 语句。到目前为止一切顺利,我现在的问题是,nummer 不是唯一的。在我的数据库中有更多具有此值的行。我需要一种方法将查询限制为第一个找到的行,其中 nummer f.e. = 1,然后转到数组的下一个值。

这是代码(我在堆栈溢出;)上找到

$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 />";
    }  

我相信你想在你的WHERE子句后面添加GROUP BY nummer

$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 . ')
  '  
);