MySQL выбрать строку, предшествующую строке с ID = X

0

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

В основном я пытаюсь поднять строку вверх, нет необходимости вставлять ее где-то посередине таблицы и менять все следующие строки id только на одно место (заменить идентификатор заказа на предыдущий). Я нашел решение для этого в другой почте, КОГДА идентификатор известен, например.

ID | имя | фамилия

1 | Джон | самка
2 | Джейн | Датчанин

но моя таблица имеет пробелы и часто больше похожа на

ID | имя | фамилия

2 | Джон | самка
7 | Джейн | Датчанин

Поэтому я не могу положиться на вычитание id на 1 и замену строки 7 номером строки 7-1.

Можно ли как-то перевернуть строку id X с предыдущей, не зная другого id?

Можно ли это сделать только SQL? У меня есть идея php-ing, но это похоже на исправление не решение.

  • 0
    Хм ... Почему ты хочешь это сделать?
Теги:
database
sorting

1 ответ

0

Это будет работать в SQL Server, я тоже предполагаю в MySQL:

SELECT *
FROM MyTable MT
...
WHERE ID = (SELECT MAX(ID) FROM MyTable MT2 WHERE ID < MT.ID)
  • 0
    Кажется, хорошо ... Я включу его в запрос коммутатора и дам вам знать. Большое спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню