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 回答