как эфективнее реализовать "поиск в найденном"

zelibobis

Новичок
как эфективнее реализовать "поиск в найденном"

Стоит задача реализовать поиск в результатах запроса. Вещь тривиальная - но вот как лучше сделать?
Видел варианты, когда используют CREATE TEMPORARY TABLE table1 SELECT * from ...., затем делали поиск по этой временной таблице. Такой вариант меня не сильно устраивает - ведь это лишняя нагрузка на сервер. Может можно как-то использовать кэш?
 

Alexandre

PHPПенсионер
Может можно как-то использовать кэш?
можно... пиши результаты в файловый кеш , а далее пройдись простым перебором по кешу.

мы реализовывывали такой функционал через спец таблицу, в которую созраняли промежуточные результаты + session_id, далее используя session_id реализовывали "Поиск в найденом".

При такой схеме необходимо продумать чистильщик Базы.
 

Solon

Новичок
Автор оригинала: Alexandre
можно... пиши результаты в файловый кеш , а далее пройдись простым перебором по кешу.

мы реализовывывали такой функционал через спец таблицу, в которую созраняли промежуточные результаты + session_id, далее используя session_id реализовывали "Поиск в найденом".

При такой схеме необходимо продумать чистильщик Базы.
да нет надо просто в этом же запросе добавить условие "AND"
например сначал нашли
SELECT * FROM Table WHERE Title LIKE '%php%'
затем ищем в найденном
SELECT * FROM Table WHERE Title LIKE '%php%' AND Title LIKE '%forum%'
 

Alexandre

PHPПенсионер
Solon можно и так, но если запрос на слишком тяжелый. наше решение было выбрано именно потому, чтоб разгрузить SQL сервер.

-~{}~ 31.08.09 12:47:

SELECT * FROM Table WHERE Title LIKE '%php%'
а это вообще убийственный запрос...
а программистов реализовывающих LIKE с двумя процентами клеймить и заносить в черные списки.
 

Andre

Новичок
Alexandre что же так категорично, это смотря что искать, если, например мне пользователя найти по части логина, мне через полнотекст искать?
 

phprus

Moderator
Команда форума
Alexandre
rlike в крайнем случае...
но не %%
Что? rlike медленнее даже %%, так как не только не умеет использовать индексы, но еще и на проверку регулярного выражения время тратит.
 
Сверху