|
|
|
| Добрый день,
Может быть кто-нибудь подскажет как реализовать вывод последних от сегодня 20 записей в базе в случайном порядке?
структура таблицы такая:
id | name | date_input
------------------------------
1 | aaaa | 2008-12-1
2 | bbbb | 2008-11-27
3 | ccccc | 2008-11-23
|
Это можно прописать в запросе или надо уже с помощью PHP?
Заранее спасибо | |
|
|
|
|
|
|
|
для: kien
(03.12.2008 в 13:23)
| |
$sql = "SELECT * FROM table WHERE date_input = now() ORDER BY RAND() LIMIT 20 ";
|
| |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 18:46)
| | Спасибо, но я наверно не совсем понятно обьяснил ситуацию.
Уточню: нужно выбрать последние 20 записей по полю date_input, значение которого будет <=now(), то есть за сегодня, вчера итд. и выводить их в случайном порядке. | |
|
|
|
|
|
|
|
для: Kien
(03.12.2008 в 19:03)
| | >...от сегодня 20
До сегодня включительно
Ну так поставьте в условие <= и будет вам счастье | |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 19:12)
| | Неа, тогда выбирает вообще из всех до сегодня, а мне надо только 20 последних | |
|
|
|
|
|
|
|
для: Kien
(03.12.2008 в 19:17)
| | Тогда попробуйте так, если правильно понял
SELECT * FROM table WHERE date_input <= now() ORDER BY input_data DESC, RAND('input_data') LIMIT 20
|
| |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 19:47)
| | Супер, спасибо большое!!! | |
|
|
|
|
|
|
|
для: Kien
(03.12.2008 в 19:55)
| | неужели получилось в случайном порядке? :) | |
|
|
|
|
|
|
|
для: Trianon
(03.12.2008 в 20:14)
| | Вы правы, нужного результата видимо одним запросом не достигнуть.
Скорее всего можно сделать так
SELECT * FROM table WHERE date_input <= now() ORDER BY input_data DESC LIMIT 20
и уже при помощи php, функции rand() выводить их в случайном порядке.
Ну или Trianon покажет нам как это делается одним запросом) | |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 20:25)
| | Через php - да, пройдет.
Я не покажу.
Запросы типа "вывести в случайном порядке" кроме брезгливости у меня никаких чувств не вызывают.
Да и если бы - LIMIT во вложенных запросах в MySQL не действует. | |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 20:25)
| | Да, действительно я как-то рано обрадовался......)
Может подскажете как через функцию вывести названия и номер? | |
|
|
|
|
|
|
|
для: kien
(03.12.2008 в 13:23)
| | поле date_input не DATETIME случаем? | |
|
|
|