我正在尝试使用mysql案例查询来更新表中的多行。我有一些情况需要更新具有相同值的行。我想知道是否可以将所有这些都放在一个案例中,或者是否必须为每个案例创建一个新的“WHEN”?
下面是我想要完成的一个示例,但显然这不是正确的方法,因为我收到错误。
UPDATE `groups` SET `status` = CASE `group_id`
WHEN 32 OR WHEN 33 THEN '1'
WHEN 31 THEN '2'
END
是否可以做类似的事情?
由于
答案 0 :(得分:3)
我想你想要
UPDATE groups SET status = CASE
WHEN group_id = 32 OR group_id = 33 THEN '1'
WHEN group_id = 31 THEN '2'
END
修改您可以使用BETWEEN
之类的运算符。例如
UPDATE groups SET status = CASE
WHEN group_id BETWEEN 32 AND 33 THEN '1'
WHEN group_id BETWEEN 30 AND 31 THEN '2'
END
答案 1 :(得分:1)
TRY
UPDATE `tablename` SET `status`= IF('group_id=31',2,1)
UPDATE tableName SET `status` = IF( group_id IN (31, 32), 2, 1 ) WHERE section_id=1
OR
UPDATE tableName SET `status` = IF( group_id ANY (31, 32), 2, 1 ) WHERE section_id=1
在我的桌子上成功运行......你遇到了什么错误?
UPDATE `tableName` SET `group_id` = CASE
WHEN group_id IN (31,32) THEN 1
WHEN group_id IN (33,34) THEN 2
END