一个查询中的MySQL多个更新集

时间:2018-02-11 14:48:35

标签: php mysql sql mysqli pdo

如何使用一个查询更新MySQL中的多行?我之前已经问过,但我不知道如何使用CASE表达式。

我目前有这个:

$sql = "UPDATE " . $DBtable . " SET clicks = clicks + 1 WHERE id= :id";  
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
$stmt->execute();

如何在同一查询中添加时间戳:

// Add timestamp
$date = new DateTime();
$now = $date->format('Y-m-d H:i:s');
"UPDATE " . $DBtable . " SET dl_time = ". $now . " WHERE id= :id";

dl_time是该列的名称。

1 个答案:

答案 0 :(得分:0)

您可以在update中设置多个列:

UPDATE " . $DBtable . "
    SET clicks = clicks + 1,
        dl_time = now()
    WHERE id= :id;

请注意,有一个set子句,其中的分配以逗号分隔。

请注意,此版本使用数据库时间而不是应用程序时间。除非您特别需要应用程序时间,否则数据库时间会使行更加一致。