Выполнение поиска в базе данных ASP.NET с ключевым словом StartsWith - PullRequest
0 голосов
/ 06 июня 2009

У меня есть запрос. Я занимаюсь разработкой сайта с поисковой системой. Поисковая система является основной функцией. Это сайт бизнес-справочника.

Подарок У меня есть базовый поиск sql, который ищет в базе данных ключевое слово "LIKE".

Мой клиент попросил меня изменить функцию поиска, чтобы вместо использования ключевого слова «Мне нравится» они шли после чего-то вроде ключевого слова «Startswith».

Чтобы прояснить это, вот пример. Если в текстовом поле кто-то набирает «plu» для сантехников, он в настоящее время возвращает, например,

  1. ЦЕНТР ГОСУДАРСТВЕННОЙ САНТЕХНИКИ И КРОВЛИ
  2. ТРУБА НЕОГРАНИЧЕННАЯ

Клиент хочет вернуть «PLUMBING UNLIMITED» только потому, что он начинается с «plu» и не содержит «plu»

Я знаю, что это странный и, возможно, глупый запрос, однако есть ли у кого-нибудь пример SQL-кода, который бы указывал мне правильное направление достижения этой цели.

Любая помощь будет принята с благодарностью, спасибо ...

Ответы [ 3 ]

2 голосов
/ 06 июня 2009

как насчет этого: SELECT * FROM MyTable WHERE MyColumn LIKE 'PLU%'


обратите внимание, что знак% находится только с правой стороны строки
пример в MS SQL

1 голос
/ 06 июня 2009

Вместо:

select * from professions where name like '%plu%'

, используйте предложение where без начального%:

select * from professions where name like 'plu%'
0 голосов
/ 06 июня 2009

LIKE не даст вам производительности, необходимой для действительно эффективного поиска. Рассматривая что-то вроде Lucence или эквивалент полнотекстового поиска вашего движка.

...