我一直在試圖找到一個解決方案,發現了幾個類似的帖子,但沒有人回答我的問題。從選擇增量mysql更新
我有一個設計糟糕的表,存儲排序索引。在編程時,我們會在人們對一些數據進行排序時更新該索引問題是,現在索引看起來像1, 2, 2, 3, 6, 6, 7, 8, 8, etc
,所以我負責解決這個問題。我修復了代碼,所以這不再發生,但我如何更新數據庫?我有一個表:
+---------+-------+---------+
| otherId | index | product |
| 3423 | 1 | zbhdfji |
| 63453 | 3 | fgdfgr |
| 75454 | 3 | drhfef |
+---------+-------+---------+
我需要它像:
+---------+-------+---------+
| otherId | index | product |
| 3423 | 1 | zbhdfji |
| 63453 | 2 | fgdfgr |
| 75454 | 3 | drhfef |
+---------+-------+---------+
我想是這樣的:
update table set index = @rownum where otherId in (select other_id FROM table where index <= 200 order by index asc);
但它不喜歡我是從同一拉表,我甚至不知道它是否會工作。有任何想法嗎?
它如何對相同索引進行排序?我正確地想用'otherId'升序排序嗎? – MaHDyfo
哈哈我說設計糟糕的桌子。沒有遞增的ID。 「otherId」似乎是唯一的,但它來自不同的表格,因此不會增加或類似的東西。關於對相同的索引進行排序......它不...只對排序在代碼中看到的排序是通過索引asc對其進行排序並將其限制爲200行 –