我有一個表中的主鍵是兩列的組合。我想更新多個行,這取決於我的主鍵多個更新查詢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的組合進行搜索。而且我不想通過多個步驟進行更新。我只想使用一個查詢進行更新 –