0

这让我发疯,所以任何帮助将不胜感激。

我正在尝试通过用户给出的数字来增加表格特定行中​​的点总数。我有一些 PHP 可以根据表单输入动态生成此语句:

UPDATE users SET points = CASE userID 
    WHEN 11 THEN (points + 1) 
    WHEN 16 THEN (points + 6) 
    WHEN 7 THEN (points + 7) 
    WHEN 10 THEN (points + 10) 
WHERE userID IN (11,16,7,10) 
END

由于多个访问器的问题,我不想将值存储在 PHP 变量中。

4

1 回答 1

3

你的语法是错误的。

您需要在 WHERE 之前添加“END”:

UPDATE users
    SET points =
        (CASE userID 
             WHEN 11 THEN (points + 1) 
             WHEN 16 THEN (points + 6) 
             WHEN 7 THEN (points + 7) 
             WHEN 10 THEN (points + 10) 
         end)
WHERE userID IN (11,16,7,10)

我重新格式化了查询。我强调将“CASE”的“END”放在同一列中,以防止出现此类问题。

于 2012-08-30T21:10:24.357 回答