MySQL выбрать строку, предшествующую строке с ID = X - PullRequest
0 голосов
/ 19 ноября 2010

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

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

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

1 |Джон |Доу
2 |Джейн |Датчанин

, но в моей таблице есть пробелы, и часто это больше похоже на

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

2 |Джон |Доу
7 |Джейн |Датчанин

Так что я не могу рассчитывать на вычитание идентификатора на 1 и замену строки 7 на номер строки 7-1.

Возможно ли как-то переключить идентификатор строки X с помощьюодин раньше, не зная другого идентификатора?

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

1 Ответ

0 голосов
/ 19 ноября 2010

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

SELECT *
FROM MyTable MT
...
WHERE ID = (SELECT MAX(ID) FROM MyTable MT2 WHERE ID < MT.ID)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...