這是content
表:更新列,以便它包含行位置
ContentID | CategoryID | Position | Other1 | Other2
===================================================
1 | 1 | NULL | abcd | efgh
2 | 1 | NULL | abcd | efgh
3 | 1 | NULL | abcd | efgh
4 | 2 | NULL | abcd | efgh
5 | 2 | NULL | abcd | efgh
6 | 2 | NULL | abcd | efgh
這是我將在運行查詢:
SELECT ContentID FROM content WHERE CategoryID = 1 ORDER BY Position
SELECT ContentID FROM content WHERE CategoryID = 2 ORDER BY Position
現在我想實現向上移動,向下移動,移動到頂部並移動到內容的底部功能。我需要做的就是用數字填充位置列:
ContentID | CategoryID | Position
=================================
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 1
5 | 2 | 2
6 | 2 | 3
是否可以通過MySQL中的單個查詢來實現這一點?喜歡的東西:
UPDATE content
SET Position = <ROW_NUMBER>
WHERE CategoryID = 1
ORDER BY Position
UPDATE content
SET Position = <ROW_NUMBER>
WHERE CategoryID = 2
ORDER BY Position
你很可能使用CASE語句,不知何故,但兩個查詢可能會更好。 – dqhendricks 2011-01-08 06:30:18
@Everyone:我只是設法做到了。 – 2011-01-08 12:19:20
`更新內容設置位置= ID` – 2011-01-08 12:42:06