Запрос для вывода определенной новости

Рейтинг: 1Ответов: 1Опубликовано: 11.04.2011

Скрипт выводит одну "главную" новость, которая должна держаться 2 дня, после чего должна либо замениться на следующюю новость, либо написать, что мол нет сейчас новостей.

Структу таблицы такая: id, title, text, date. В date лежит время в timestamp формате (время тогда, когда новость была добавлена из админки, хотя мне кажется это не совсем правильно).

Так вот, помогите составить запрос в mysql, который бы выводил нужную мне новость.

Добавлено.

$q1 = mysql-query("SELECT * FROM news WHERE
                  `date` > date-sub(NOW(), interval 2 day) 
                  ORDER BY `date` DESC LIMIT 1");

Этот запрос работает все-таки немного не так, как нужно, если в базе несколько новостей, то более новая запись перебивает старую, даже если не прошло 2 дней.

Можно такое решить средствами mysql? Или, наверно, придется при добавлении новой записи подстраивать дату, чтоб считало правильно.

Ответы

▲ 2Принят

Попробуйте такой запрос:

select id, title, txt, dt from news 
where dt > date_sub(CURRENT_DATE(), interval 2 day) 
order by dt desc limit 1;

или так, если нужны ВСЕ записи не старше 2х дней (появятся сначала последняя добавленная):

select id, title, txt, dt from news 
where dt > date_sub(CURRENT_DATE(), interval 2 day) 
order by dt desc;

Написано в пол-четвертого ночи, поэтому на кратость и оптимальное решение не претендую - оптимизируйте! ;) - уже исправил даже...