2

正しい方向を見つけられない午後の後、誰かが私を助けてくれることを願っています。

私が欲しいのは、配列を PDO 実行ステートメントにバインドすることです。したがって、PREPARE で WHERE IN ステートメントを使用します。これまでのところ、私の問題は、数値が一意ではないということです。私のデータベースには、この値を持つ行が他にもあります。クエリを最初に見つかった行に制限し、数値 fe = 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 />";
    }  
4

1 に答える 1

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 . ')
  '  
);
于 2012-08-14T14:25:12.463 に答える