Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2019, 14:30   #1
reanimatik
Пользователь
 
Регистрация: 21.08.2018
Сообщений: 27
По умолчанию MySQL, вывести ПРЕДпоследнюю запись

Из таблицы MySQL как-нибудь можно вывести ПРЕДпоследнюю запись?

Кроме метода HAVING id = COUNT(*) - 1, так как, допустим в таблице 30 записей, при запросе он выведет запись с id 29

А, если понадобится удалить запись с id 29, то при запросе он не выдаст ничего, ибо 30-1=29, а записи с таким id нет
___________________________________ ___________________________________ ___________________________________ _______

Решено

Код:
SELECT *
FROM table_name
ORDER BY id DESC
LIMIT 1, 1;
LIMIT 1 (вывести одну строку), 1 (отсеять первую строку)
В итоге, выйдет предпоследняя

Последний раз редактировалось reanimatik; 23.05.2019 в 14:34.
reanimatik вне форума Ответить с цитированием
Старый 23.05.2019, 15:26   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от reanimatik Посмотреть сообщение
Из таблицы MySQL как-нибудь можно вывести ПРЕДпоследнюю запись?
в SQL вообще можно говорить только о каком-то порядке, если используется запрос с ЯВНЫМ указанием сортировки.
т.е. можно получить предпоследнюю запись при сортировке по имени,
можно получить предпоследнюю запись при обратной (убывающей) сортировке по имени, можно получить предпоследнюю запись при сортировке по ID и т.д.

если нет сортировки, не может быть и разговора о "первой"/"второй"/"последней"/"предпоследней"


Цитата:
Сообщение от reanimatik Посмотреть сообщение
Решено
Отлично!


Цитата:
Сообщение от reanimatik Посмотреть сообщение
LIMIT 1 (вывести одну строку), 1 (отсеять первую строку)
наоборот. первым идёт смещение - сколько строк пропустить,
второе число - сколько строк вывести.
хотя, конечно, для LIMIT 1,1 от перемены единиц местами ничего не поменяется.

кстати, можно ещё так записать (это тоже самое, просто другой вариант записи)
Код:
.... ORDER BY id DESC LIMIT 1 offset 1
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, изображающая двоичную1|десятичную2 запись целого числа. Вывести строку, изображающую десятичную1|двоичную2 запись этого же числа Вадим5678 Помощь студентам 5 08.04.2019 17:56
Поменять местами первую и последнюю , вторую и предпоследнюю и т.д цифры числа Kat9 Паскаль, Turbo Pascal, PascalABC.NET 2 22.05.2013 14:35
запись в бд mysql megostudent БД в Delphi 2 12.05.2013 17:08
вывести имя таблицы в mysql??? Дмитрий_Попов PHP 1 16.03.2012 22:38
(Pascal) Составить программу, вычисляющую предпоследнюю цифру числа n oxxxy Помощь студентам 2 29.02.2012 16:47