首先,爲可怕的標題道歉,我想不出一個更好的方式來表達我的問題。 (隨意建議更好的替換)MySQL更新 - 選擇性更新
基本上我有一個「計數」列的表。 我想將所有計數重置爲零,除了具有最高值的10行外。我希望它們重置爲0.
如何在不編寫多個查詢的情況下實現此目的?
更新 我有我的查詢作爲現在以下
UPDATE covers AS t1
LEFT JOIN (SELECT t.cover_id
FROM covers t
ORDER BY t.cover_views DESC
LIMIT 10) AS t2 ON t2.id = t.id
SET cover_views = 0
WHERE t2.id IS NULL
我得到的錯誤#1054 - Unknown column 't2.id' in 'where clause'
- 任何想法,爲什麼?
我也試過同樣的結果
UPDATE covers t1
LEFT JOIN (SELECT t.cover_id
FROM covers t
ORDER BY t.cover_views DESC
LIMIT 10) t2 ON t2.id = t.id
SET t1.cover_views = 0
WHERE t2.id IS NULL
是否有ID列或主鍵列? – MikeTWebb 2010-09-01 21:22:17
是的,主鍵 – Chris 2010-09-01 21:25:46
@Chris ...看起來像@Wadhi已經回答了。 – MikeTWebb 2010-09-01 21:27:06