Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
LIMIT в подзапросе. Помогите! (Антон) 27/07/2007 - 10:20:23
      Re: LIMIT в подзапросе. Помогите! (Может так) 27/07/2007 - 11:22:07
      Re: LIMIT в подзапросе. Помогите! (Антон) 27/07/2007 - 12:17:07
      Re: LIMIT в подзапросе. Помогите! (xeim) 30/07/2007 - 09:47:09

> Original message text:
> From: Антон - 27/07/2007 - 10:20:23
> Subject:LIMIT в подзапросе. Помогите!
> -----------------
> есть такой запрос:
> SELECT id, title, date, alt_name
> FROM post
> WHERE id IN
> (SELECT id
> FROM post
> WHERE MATCH (title, keywords) AGAINST ('$body')
> AND id != ".$row['id']."
> AND approve='1'
> ORDER BY MATCH (title, keywords) AGAINST ('$body') DESC
> LIMIT 5)
> ORDER BY date DESC
>
> в общем, суть в том, что в подзапросе выбираются 5 самых релевантных постов, потом они сортируются по дате. НО! mysql не понимает LIMIT в подзапросе.
>
> как-то можно оптимизировать запрос?
>


From: xeim - 30/07/2007 - 09:47:09
Subject:LIMIT в подзапросе. Помогите!
-----------------
Можно попробовать способ описанный здесь http://dev.mysql.com/doc/refman/5.0/en/union.html, в комментариях. Запрос будет выглядеть так:
(
SELECT `id`, `title`, `date`, `alt_name`
FROM `post`
WHERE MATCH (`title`, `keywords`) AGAINST ('$body') AND
`id` != ".$row['id']." AND
`approve` = '1'
ORDER BY MATCH (`title`, `keywords`) AGAINST ('$body') DESC
LIMIT 5
)
ORDER BY `date` DESC

Но там же в комментариях честно предупреждается, что это недокументированная возможность mysql, своего рода sql-хак. Происходит от особенностей реализации UNION запросов в mysql. Естественно в стандартах по sql ничего подобного нет. Работает только в 5.0+ версиях, работоспособность в будующих версиях никто не гарантирует. Использовать его или нет - решать вам.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
31955



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |