【问题标题】:Updating multiple field in same table with different WHERE condition使用不同的 WHERE 条件更新同一张表中的多个字段
【发布时间】:2016-02-12 06:25:48
【问题描述】:

我问自己是否可以更新 1 个表中的 2 个字段但使用 2 个不同的 where 条件。让我解释一下。目前我正在使用这样的 2 个查询:

UPDATE members SET last_game = $time WHERE userid = 1

UPDATE members SET game_played = game_played + 1 WHERE userid > 0

我想知道是否有办法在 sql 中加入这两个查询?

【问题讨论】:

    标签: sql join mysqli sql-update


    【解决方案1】:

    您可以使用CASE 表达式:

    UPDATE members 
    SET 
       last_game = CASE WHEN userid = 1 THEN $time ELSE last_game END,
       game_played = game_played + 1 
    WHERE userid > 0
    

    【讨论】:

    • 1总是大于0
    • @GiorgosBetsos 但比原来的查询慢了很多