1

問題: 1 つのアンケートに対して、複数行の結果があります。各調査は、「結果」テーブルに任意の数の行を持つことができます。key_value という列があります。0 または -1 です。PHP で MySQL データベースの複数の行を列挙し、各オブジェクトにアクセスし、PHP でブール値にフラグを立てて、この特定の調査に key_value が 0 の行があるかどうかを確認する最速の方法は何ですか?

ブルートフォースではないことを除いて、このようなもの...

for (i = 0; i < mysqlrows.length; i++){
    if (mysqlrow.key_value == 0)
        flag = true;
     else
        flag = false;
}
4

1 に答える 1

1

すべての一致する (key_value = 0) 結果を操作するには:

$query = <<<EOD
    SELECT result_id
    FROM Results
    WHERE key_value = 0
EOD;

$pdo = new PDO(....);
$stmt = $pdo->prepare($query);
if ($stmt->execute()) {
    while ($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $result_id = $result['result_id'];
        //do something with this result?
    }
}

ただし、key_value = 0 の結果のだけが必要な場合は、次のような SQL を使用します。

SELECT COUNT(*) as num_with_zero FROM Results WHERE key_value = 0
于 2012-08-24T05:35:28.683 に答える