Понимаю. секундочку.

Таблица: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

Теперь я хочу реализовать функцию «вверх», «вниз», «вверх» и «вниз» для содержимого. Все, что мне нужно сделать, это заполнить столбец Position числами:

SELECT ContentID FROM content WHERE CategoryID = 1 ORDER BY Position
SELECT ContentID FROM content WHERE CategoryID = 2 ORDER BY Position

Можно ли добиться этого с помощью одного запроса в MySQL? Что-то вроде:

ContentID | CategoryID | Position
=================================
1         | 1          | 1
2         | 1          | 2
3         | 1          | 3
4         | 2          | 1
5         | 2          | 2
6         | 2          | 3

вы, вероятно, могли бы как-то использовать оператор CASE, но два запроса могут быть лучше.

UPDATE content
SET Position = <ROW_NUMBER>
WHERE CategoryID = 1
ORDER BY Position

UPDATE content
SET Position = <ROW_NUMBER>
WHERE CategoryID = 2
ORDER BY Position

Ответы на вопрос(4)

Ваш ответ на вопрос