我有一個表命名status_t:mysql的幫助更新行具有相同的值
**id** **page** **status** **locked**_by
1 0 2 0
1 1 2 0
1 2 2 0
2 0 0 0
2 1 2 0
2 2 2 0
主鍵(ID,頁)。
在上面的例子,我想更新所有 行是有狀態的所有頁= 2
即查詢應更新所有ID的行數= 1〜3的狀態所以該表將成爲
**id** **page** **status** **locked**_by
1 0 3 1
1 1 3 1
1 2 3 1
2 0 0 0
2 1 2 0
2 2 2 0
我曾嘗試:
SELECT * FROM status_t AS t
WHERE id IN
(SELECT id FROM status WHERE status = 0) LIMIT 10
上面的查詢獲取的行被更新,但我不能這樣做:
UPDATE status_t as S1 WHERE id IN
(SELECT id FROM status_t WHERE status = 2)
SET S1.status = 3, S1.locked_by = 1
編輯:
上表只是一個例子。
我不想更新WHERE id = 1。我只想更新行,不管ID爲 的status = 2是否爲相同的id。 在上面的例子中,如果具有鍵(2,2)的行的狀態= 2,那麼它應該被更新。
檢查我的答案這將更新表格,因爲你想 –