BPK
Дата: 11.06.2011 17:15:10
Сейчас происходит поиск по LIKE N'%'+@SearchText+N'%'.
Хочу, чтобы происходил поиск записей, включающих все слова из строки, но в произвольном порядке. Можно ли так сделать, изменив лишь строку поиска?
iap
Дата: 11.06.2011 19:49:09
BPK,
чтобы ограничивать запрос словами из строки, эту строку надо распарсивать так,
чтобы каждое слово оказалось на одной строке. Потом получившееся множество джойнить (LEFT JOIN)
с таблицей, в которой идёт поиск. Вам нужны будут записи, для которых COUNT(*)=COUNT(TextField).
Это будет означать, что в поле есть вхождения всех слов строки.
Правда, если в @SearchText одно слово встречается более одного раза, и надо, чтобы в поле таблицы
оно встечалось ровно столько же раз, алгоритм слегка усложнится.
Не исключено, что и поле таблицы тоже надо будет парсить.
Всё вышесказанное неоднократно обсуждалось на форуме.