SQL查询UPDATE多个字段

时间:2015-01-16 02:48:32

标签: mysql sql

此查询有什么问题?

UPDATE user166x136
SET desc = CASE id
WHEN 18 THEN 'apple' WHEN 14 THEN 'banana' WHEN 21 THEN 'pear' WHEN 17 THEN 'orange' WHEN 19 THEN 'lemon' 
          END
WHERE id IN (18,14,21,17,19)

idINT
descVARCHAR

2 个答案:

答案 0 :(得分:1)

DESCreserved keyword。如果您要使用它,则必须将其包裹在刻度线中。

SET `desc` = CASE id

您在orange

之前也错过了引用
WHEN 17 THEN orange'
           ^^^^
           HERE

应该是

WHEN 17 THEN 'orange'

最后,正如Minh指出的那样,你错过了CASE中的END CASE

END CASE

所以你有一个错误的帽子戏法。

答案 1 :(得分:0)

我认为你错过了END CASE关键字

UPDATE user166x136
SET `desc` = CASE id
            WHEN 18 THEN 'apple'
            WHEN 14 THEN 'banana'
            WHEN 21 THEN 'pear'
            WHEN 17 THEN 'orange'
            WHEN 19 THEN 'lemon' 
          END CASE
WHERE id IN (18,14,21,17,19)