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

时间:2012-08-14 14:23:41

标签: php pdo limit

一天下午没有找到合适的方向,我希望somone可以帮助我。

我想要的是: 将数组绑定到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 />";
    }  

1 个答案:

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