Выбрать кроме последнего id

VANHALEN

Новичок
Люди, кто подскажет. Не передвая заранее в запрос известное значение последнего id как добавить условие выбора кроме последнего id? Есть ли элегантное решение?

SELECT * FROM `таблица` ORDER BY `дата` DESC, `ид` DESC limit ".$начальная позиция.", ".$результатов на страницу."

Вот чтобы последний ид в эту выборку не попал.
 

zerkms

TDD infected
Команда форума
Последний на каждой странице или последний вообще?
 

VANHALEN

Новичок
Последний на каждой странице или последний вообще?
Не... последний вообще. Это типа специальные предложения.. Перове (тоесть последнее) выводится отдельно, остальные как бы архив
 

zerkms

TDD infected
Команда форума
VANHALEN
А для пейджинга ты считаешь число элементов итого?
 

VANHALEN

Новичок
А для пейджинга ты считаешь число элементов итого?
Там небольшая функция.. считаем колько всего, делим на колличество на странице и бла бла бла и далее по тексту.. Впринцуипе к делу вроде не должно относиться.
Там вопрос то в чём.. Это значение абсолютно однозначно. Оно не зависит ни от текущей страницы, ни от колличества.. Вообще ни от чего. Просто последний id. Вот меня и интересует, заранее не спрашивать у таблицы последний ид, а просто написать WHERE `id` != последний ид. Есть ли в синтаксисе мускула такое однозначное определение.. Я даже где-то встречал нечно похожее.

Во.. вспомнил.. не так я встречал.. Я видел когда спрашивался какой id будет следующим, а на счёт последнего не встречал
 

VANHALEN

Новичок
если у тебя есть общее количество - то для последней страницы ты можешь выбрать просто на 1 элемент меньше.
Неа.. так не выйдет.. Мне нужен самый новый ид вообще, а не из результата.. Да и последнее предложение выводится на каждой странице, просто сверху. Я наверное пока не буду запариваться. Просто перед этим запросом спрашу у тебялицы последний ид и изключу его в запросе.. Не велика потеря - один лишний лёгенкий запрос
 

Redjik

Джедай-мастер
zerkms
ну сам же понимаешь, что count элементов != id последнего
или ты что-то другое имеешь ввиду?

не скажу, что mysql моя сильная сторона, но я бы сделал так
Селект всех записей ORDER DESC + LIMIT
UNION
Селект одной записи ORDER ASC
 

zerkms

TDD infected
Команда форума
Иван Redjik Матвеев
Согласно сообщениям автора:
1. последняя запись выводится первой
2. соответственно её в списке выводить не нужно
3. есть итоговое число записей

А теперь ловкость рук - если есть общее число записей, то на последней странице можно вывести на 1 запись меньше. та-да
 

zerkms

TDD infected
Команда форума
Неа.. так не выйдет.. Мне нужен самый новый ид вообще, а не из результата.. Да и последнее предложение выводится на каждой странице, просто сверху. Я наверное пока не буду запариваться. Просто перед этим запросом спрашу у тебялицы последний ид и изключу его в запросе.. Не велика потеря - один лишний лёгенкий запрос
Ну тогда нужно было объяснять лучше, потому что в изначальном вопросе и в ответах на мои наводящие вопросы ты говорил "последний". Последний - это который после всех.
 

Redjik

Джедай-мастер
zerkms
тогда я до сих пор не могу понять, чего хотел автор =)))
 

VANHALEN

Новичок
Ну вот так примерно есть. Бассейн с установкой попадают и в предложения и в их архив..

А теперь ловкость рук - если есть общее число записей, то на последней странице можно вывести на 1 запись меньше. та-да
Всё. Понял твою мыслю.. Только не на последней странице, а на первой (потому, что они сортируются по старости.. старые в конце), но идея имеет право на жизнь.. Хотя я не пробовал.. Наверное всё-таки лучше спрошу заранее последний вставленый ид. Но я вообще хотел именно про синтаксис узнать.. есть ли у мускула фраза, которая выражает последнюю сделанную запись в таблице.

Ну тогда нужно было объяснять лучше, потому что в изначальном вопросе и в ответах на мои наводящие вопросы ты говорил "последний". Последний - это который после всех.

Ну тогда нужно было объяснять лучше, потому что в изначальном вопросе и в ответах на мои наводящие вопросы ты говорил "последний". Последний - это который после всех.
Да да да.. Это я ступил.. Последний - имеется ввиду последняя по времени новость.. А в мускуле разумеется это последняя сделанная запись..
 

Вложения

zerkms

TDD infected
Команда форума
Прям "последней сделанной" записи - нет. Но ты всегда можешь использовать MAX()
 

VANHALEN

Новичок
Прям "последней сделанной" записи - нет.
Во во.. вот я и хотел это узнать, есть, или нету.. жаль. Было бы круто..
ну сделаем так SELECT * FROM `".$content_table."` ORDER BY `id` DESC limit 1
вот и последняя запись.. её в следующем запросе исключаем..

Есть кстати, как я говорил, значение next id, можно от него единицу отнять, но предпоследняя запись то может быть удалена уже.. Это раз.. Чтобы спросить следующий ид - всё-равно нужен запрос.. Так что решение как бы найдено банальное..
Но ты всегда можешь использовать MAX()
А его всё-равно придётся спрашивать отдельно.. Так, что нет смысла.
 

VANHALEN

Новичок
Совсем забыл... всем спасибо за ответы! Ответ на свой вопрос получил..
 
Сверху