Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Как вывести 6 последних записей начиная с самой но


Автор: vlad275 11.11.2009, 18:10
Как вывести 6 последних записей начиная с самой новой?
Такой запрос выводит шесть последних новостей, но начинает не с последней новости а с самой старой из этих шести. Как поправить?

SELECT id, header, short, date_format(date_of_add, '%d.%m.%Y') AS doa FROM news WHERE hidden = 0  ORDER BY date_of_add DESC LIMIT 6?

Автор: ТоляМБА 11.11.2009, 18:14
Код
Select *
from
(SELECT id, header, short, date_format(date_of_add, '%d.%m.%Y') AS doa
FROM news WHERE hidden = 0
ORDER BY date_of_add DESC LIMIT 6) as a
ORDER BY 4

Автор: vlad275 11.11.2009, 20:04
Код

Select * from (SELECT id, header, short, date_format(date_of_add, '%d.%m.%Y') AS doa FROM news 
WHERE hidden = 0 ORDER BY date_of_add DESC LIMIT 7) as a ORDER BY 4 DESC


Странно, в админке новости выводятся так:
http://radikal.ru/F/s56.radikal.ru/i152/0911/ae/15f81dea8798.png.html

А на сайте новости выводятся следующим образом.
Сначала идут новости за последний день, потом за пред-последний и .д. НО в новостях за последний день выводятся первыми старые новости(утренние)
http://host-park.ru/

 Нужно date_format() убрать?

Автор: vlad275 11.11.2009, 21:14
Времени добавления данных нет. Дата в таком формате 2009-03-30 
Наверное нужно не LIMIT 7 а TOP 7?

Автор: Zerstroer 12.11.2009, 21:30
LIMIT и TOP эквивалентные операторы. Используются только в разных ветках SQL. LIMIT - в MySQL (SQL92) а TOP в MS-SQL (T-SQL). vlad275, У тебя база на чем висит?
В общем рецепт такой: перегнать datetime в binary или timestamp (как это сделать - задай вопрос на пост ниже или в гугль)... ((В MySQL) проще сделать...) И потом ORDER BY по этой колонке. 
Если у тебя нет времени занесения новости... То TOP или LIMIT будет тебе рандомно все доставать... Я бы в таком случае добавил на новости, которые на одну дату зарегистрированы в табличке колонку с порядком сортировки... И сортерить потом по ней... Иначе сортерить по какой либо другой колонке, например теме новости...

Автор: vlad275 13.11.2009, 02:02
Понял. Стоит MySQL. Только доступа к ней нет - я дорабатываю сайт чужой компании. Рекомендации своему куроводителю дал ;-)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)