我有一个表中的主键是两列的组合。我想更新多个行,这取决于我的主键多个更新查询mysql
StationId ServerDate Status
1 2011-05-05 01:00:00 0
1 2011-05-06 01:00:00 1
2 2011-05-05 01:00:00 2
我的更新查询目前看起来像
Update data set status = 1 where StationId = '1' and ServerDate = '2011-05-05 01:00:00'
Update data set status = 2 where StationId = '1' and ServerDate = '2011-05-06 01:00:00'
我想用CASE声明,但对如何使用它时,钥匙无法弄清楚是两个键的组合。这是我用CASE写的查询。它改变了我所有的行。如果当前记录在记录3等条件下没有出现,则其更改为默认值0.我希望该记录保留以前的值。
UPDATE data set status = CASE
WHEN StationId = '1' and ServerDate = '2011-05-05 01:00:00' THEN 1
WHEN StationId = '1' and ServerDate = '2011-05-06 01:00:00' THEN 2
END
由于StationId和ServerDate是组合主键我不认为我需要索引我的StationId。我将一直使用StationId和ServerDate的组合进行搜索。而且我不想通过多个步骤进行更新。我只想使用一个查询进行更新 –