使用类似内容更新MySQL中的多行

时间:2016-03-19 00:58:34

标签: mysql sql sql-update multiple-records

我有一个事件表。 (我没有创建这个表)

字段是id,event_id,start_date,end_date,e_status

唯一唯一的就是id。其余各行都是相同的。

如何更新状态?

我试过了:

UPDATE events 
    SET e_status = 
        CASE event_id 
            WHEN 12830 THEN 0 
        END 
    WHERE start_date = '2016-06-24 17:30:00'
    AND end_date = '2016-06-24 18:00:00' 
    AND event_id IN (12830)

没有更新更新。

2 个答案:

答案 0 :(得分:0)

如果除id列之外的所有行上的所有数据都相同,则WHERE子句中不需要任何条件。你应该能够拥有这个:

UPDATE events 
SET e_status = 
    CASE event_id 
        WHEN 12830 THEN 0 
    END

实际上,你甚至不需要案例陈述。如果除id之外的所有数据都相同,那么所有行都不会有event_id = 12830吗?你可以拥有==>

UPDATE events
set e_status = 0

答案 1 :(得分:0)

编辑前

ID  Event Status
1   USA     0
2   UK      0
3   Canada  0

您的简单查询将是

update event set status=1

编辑后

ID  Event Status
1   USA     1
2   UK      1
3   Canada  1

如果您想要定位特定记录,只需使用where子句

更新事件集状态= 1,其中id = 1