Mysql案例 - 2个条件需要相同的更新值

时间:2011-03-28 04:48:53

标签: mysql

我正在尝试使用mysql案例查询来更新表中的多行。我有一些情况需要更新具有相同值的行。我想知道是否可以将所有这些都放在一个案例中,或者是否必须为每个案例创建一个新的“WHEN”?

下面是我想要完成的一个示例,但显然这不是正确的方法,因为我收到错误。

UPDATE `groups` SET `status` = CASE `group_id` 
WHEN 32 OR WHEN 33 THEN '1' 
WHEN 31 THEN '2' 
END 

是否可以做类似的事情?

由于

2 个答案:

答案 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
相关问题