2016-02-26 78 views
3

如何在只有一次MySQL查询中执行以下两次更新?在一个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

回答

3

试试这个:

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

谢谢!它完美的作品。现在的问题是我不知道如何。我必须为MySQL学习更多的CASE句子。我不明白。 –

+0

@MarceloForclaz:https://dev.mysql.com/doc/refman/5.7/en/case.html –