一个 MySQL 查询中的两个更新

Two updates in one MySQL query

如何在一个 MySQL 查询中执行以下两个更新?

$query = "UPDATE news SET main = 1 WHERE id = '$id'";
mysqli_query($this->db_conn, $query);
$query = "UPDATE news SET main = 0 WHERE id <> '$id'";
mysqli_query($this->db_conn, $query);

只有一行应设置为 1,其余行应设置为 0

试一试:

UPDATE news SET main = CASE
    WHEN id = '$id' THEN 1
    ELSE 0
END