我正在尝试检查数据库中的两列(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';
}
}
我理想地追求性能的最佳方法。我的第一个想法是,可能循环结果并将每一个添加到一个数组中 - 然后更新数组?如果它确实是一种方法,我不知道如何做到这一点。
答案 0 :(得分:1)
如果要将所有行更新为someValue
,则可以执行以下操作:
UPDATE tableName SET expired = 'someValue' WHERE current_date >= end_date;
我当然假设正在测量某种过期。