替代循环内的SQL更新

时间:2015-07-15 18:25:46

标签: php sql

我正在尝试检查数据库中的两列(start_date和end_date)。如果end_date大于start_date,那么我希望更新记录。

除了在循环中有一个UPDATE SQL查询之外,还有更好的方法吗?

$current_date = time();
echo 'current_date '. $current_date .'<br>';

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo 'start_date '. $row['start_date'] .' - end_date '. $row['end_date'] .' - ';

    if ($current_date >= $row['end_date'])
    {
        echo 'UPDATE SQL HERE?';
    }
        else
    {
        echo 'Leave the data alone';
    }
}

我理想地追求性能的最佳方法。我的第一个想法是,可能循环结果并将每一个添加到一个数组中 - 然后更新数组?如果它确实是一种方法,我不知道如何做到这一点。

1 个答案:

答案 0 :(得分:1)

如果要将所有行更新为someValue,则可以执行以下操作:

UPDATE tableName SET expired = 'someValue' WHERE current_date >= end_date;

我当然假设正在测量某种过期。