0

次のような PDO クエリからすべての結果を取得しています。

$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);

ここで、「ステータス」フィールドが「オープン」に等しい行がいくつあるかを数えたいと思います。SQL を直接ビルドして OPEN ステータス行のみをロードできることはわかっていますが、次のようなもので PHP を使用する方が速いかもしれないと考えました。

$openOrders = count(array_keys($orders,"OPEN"));

しかし、それは0を返しています。

4

1 に答える 1

1

記録のために、これが私がPHPで行う方法です:

$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);
$open = array_reduce($orders, function ($num, array $order) {
    return $num + (int)($order['status'] == 'OPEN');
}, 0);

そして、実際にそれを行う方法は次のとおりです。

$query = "SELECT COUNT(*) FROM orders WHERE status = 'OPEN'";
于 2013-04-19T01:35:54.017 に答える