Как выбрать записи, запускающиеся с данной строки от базы данных SQL Server?

У меня есть база данных с большим количеством слов, которые будут использоваться в системе тега. Я создал необходимый код для поля автоматического заполнения, но я не уверен в том, как выбрать записи соответствия от базы данных самым эффективным способом.

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

Мой план состоит в том, чтобы считать каждую строку и затем использовать строку C#. StartsWith () и строка. Содержит () функции для нахождения слов, которые могут соответствовать, но я думаю, что с большой базой данных, это может быть неэффективно, чтобы считать каждую строку и затем отфильтровать их.

Существует ли путь к строкам только для чтения, который запускается с или содержит данную строку от SQL Server?

14
задан marc_s 27 July 2010 в 17:22
поделиться

3 ответа

При использовании like вы предоставляете знак % в качестве подстановочного знака. Если вам нужны строки, начинающиеся с Hello, вы используете LIKE 'Hello%' Если вам нужны строки с Hello в любом месте строки, вы используете LIKE '%Hello%'

Что касается эффективности, использование Like не является оптимальным. Вам следует обратить внимание на полнотекстовый поиск.

34
ответ дан 1 December 2019 в 06:23
поделиться

Я знаю о команде LIKE, но мне кажется, что это скорее команда EQUAL. Я получаю только те слова, которые выглядят точно так же, как слово, которое я ввожу.

Это потому, что вы не используете подстановочные знаки:

WHERE column LIKE 'abc%'

...вернет строки, в которых значение столбца начинается с "abc". Замечу, что при использовании подстановочных знаков это единственная версия, которая может использовать индекс на column... er column.

WHERE column LIKE '%abc%'

... вернет строки, в которых значение column содержит "abc". Подстановочный знак в левой части LIKE гарантирует, что индекс не может быть использован.

SQL Server не поддерживает регулярные выражения - для получения доступа к ним необходимо использовать функции CLR. Но он работает наравне с LIKE.

Полнотекстовый поиск (FTS) - лучшее средство поиска текста.

9
ответ дан 1 December 2019 в 06:23
поделиться

Вы можете использовать CONTAINS в T-SQL, но я почти уверен, что вам придется использовать полнотекстовое индексирование для таблицы, участвующей в вашем запросе.

Содержит

Начало работы с полнотекстовым поиском

2
ответ дан 1 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: