Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Базы Данных > сортировка выборки по двум параметрам |
Автор: h8every1 30.7.2007, 04:08 | ||
есть выборка, которая выдаёт похожие новости -
нужно, чтобы после того как были выбраны 5 самых подходящих, они были отсортированы по дате. просто сделать ORDER BY relev DESC, date DESC - не подходит, т.к. будет искать сперва с одинаковыми числом в поле relev, а это практически не возможно, и только если найдёт статьи с одинаковыми значениями, отсортирует их по дате. на одном форуме мне посоветовали сортировать массив, который получается на выходе, т.к. поле date я тоже выбираю. но я не представляю как это сделать. подскажите, пожалуйста, ссылки в которых можно почитать как PHP работает с результатами БД? |
Автор: Fally 30.7.2007, 09:49 | ||
а что мешает написать вот так: ORDER BY date DESC, relev DESC ? Ведь тогда он сначала от сортирует по дате, а уже потом по полю relev |
Автор: h8every1 30.7.2007, 09:59 |
Fally, в том-то и дело - надо выбрать не последние новости, а самые похожие. а они могли быть и месяц назад, и два. А в вашем варианте получается, что сперва мы сортируем новости по дате - выбирутся самые последние новости, а потом, если дата у некоторых совпадает, эти новости сортируются по релевантности. А дата совпадать будет, потому что в день добавляется примерно 20-30 новостей. не то. но спасибо за попытку =) |
Автор: sTa1kEr 30.7.2007, 11:53 | ||
h8every1, сделайте через вложенный селект. Не самый практичный, но самый простой способ.
|
Автор: h8every1 30.7.2007, 13:03 |
хех. были у меня такие мысли. и даже сделал до этого. но, к сожалению, версия MySQL , которая на сервере стоит (5.0.26) не поддерживает LIMIT в подзапросе. не знаю, поддерживает ли вообще какая-нибудь =) мне бы что-нибудь с результатом запроса наколдовать. или в php всё только по одной записи передается? в идеале было бы просто весь массив выборки отсортировать по полю 'date' - оно же тоже выбирается... но как? хотя не. я не так делал. попробую, спасибо =) |