поиск записей по значению или значениям, например я делаю поисковик. Я к чему говорю, какая логика? Не перебирать же сначало запросы и AND потом с OR, получится если параметра 3 то это 4 запроса, если 4 то это 8 запросов и т. Дт
А почему в одном запросе нельзя?
Where поле1 like '%'+@value+'%' or поле2 like '%'+@value+'%' or поле3 like '%'+@value+'%' и т.д. Я так делал, запрос работал быстро, таблица несколько тысяч записей и поиск по 4 колонкам
не могу продумать для поисковика, у меня просто несколько таблиц и я думаю как лучше. сначала выбрать ид где есть совпадающее значение , а потом вычеслять сколько значений из поиска совпало с записью и на основе этого делать сортировку в выдаче
SELECT id, count(*) FROM table t WHERE (CONCAT(UPPER(coalesce(t.description1,'')), UPPER(coalesce(t.description2,''))) LIKE CONCAT('%',UPPER('@value'),'%')) GROUP BY id
Может тебе в полнотекстовый поиск стоит начать копать.
я вообще случайно код отправил, я его редактировал, случайно ентер нажал:D
Что если я буду все данные с таблиц собирать в одну талицу и индексировать, потом искать совпадение selectom и востанавливать запись по внешниму ключу
так обычно не делают.
А как делают?
для поиска я если честно не в курсе. не делал такое никогда.
Обсуждают сегодня