Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет, соответствует ли определенный символ String указанному шаблону.
Синтаксис
match [NOT] LIKE pattern [ESCAPE escape]
Аргументы
match Выражение Entity SQL, которое вычисляет значение String.
pattern Шаблон, соответствующий указанному String.
escape Escape-символ.
NOT Указывает, что результат LIKE может быть отрицаем.
Возвращаемое значение
trueЗначение , falseесли шаблон string соответствует шаблону; в противном случае .
Замечания
Выражения Entity SQL, использующие оператор LIKE, оцениваются так же, как выражения, использующие равенство в качестве критерия фильтра. Однако выражения Entity SQL, использующие оператор LIKE, могут включать как литералы, так и подстановочные знаки.
В следующей таблице описан синтаксис шаблона string.
| Подстановочный знак | Описание | Пример |
|---|---|---|
| % | Любой из string нулевых или более символов. |
title like '%computer%' находит все названия с словом "computer" в любом месте заголовка. |
| _ (символ подчеркивания) | Любой одиночный символ. |
firstname like '_ean' находит все четыре буквы первых имен, которые заканчиваются "ean", например Дин или Шон. |
| [ ] | Любой отдельный символ в указанном диапазоне ([a-f]) или набор ([abcdef]). |
lastname like '[C-P]arsen' находит фамилии, заканчивающиеся "arsen" и начиная с любого одного символа между C и P, например Карсен или Ларсен. |
| [^] | Любой отдельный символ, не в указанном диапазоне ([^a-f]) или set ([^abcdef]). |
lastname like 'de[^l]%' находит все фамилии, начинающиеся с "de", и не включают "l" в качестве следующей буквы. |
Замечание
Оператор Entity SQL LIKE и предложение ESCAPE нельзя применить к System.DateTime или System.Guid значениям.
LIKE поддерживает сопоставление шаблонов ASCII и сопоставление шаблонов Юникода. Если все параметры являются символами ASCII, выполняется сопоставление шаблонов ASCII. Если один или несколько аргументов являются Юникодом, все аргументы преобразуются в Юникод и сопоставление шаблонов Юникода. При использовании Юникода с LIKE конечные пробелы являются значительными; Однако для неискода конечные пробелы не являются значительными. Синтаксис строки шаблона Entity SQL совпадает с синтаксисом строки Transact-SQL.
Шаблон может включать обычные символы и символы-шаблоны. Во время сопоставления шаблонов обычные символы должны точно соответствовать символам, указанным в символе string. Однако подстановочные знаки можно сопоставить с произвольными фрагментами строки символов. При использовании с подстановочными знаками оператор LIKE является более гибким, чем операторы сравнения строк = и !=.
Замечание
Вы можете использовать расширения для конкретного поставщика, если вы нацеливаетесь на определенного поставщика. Однако такие конструкции могут обрабатываться по-разному другими поставщиками, например. SqlServer поддерживает шаблоны [first-last] и [^first-last], в которых бывший соответствует точно одному символу между первым и последним, а последний соответствует ровно одному символу, который не находится между первым и последним.
Побег
С помощью предложения ESCAPE можно искать символьные строки, содержащие один или несколько специальных подстановочных знаков, описанных в таблице в предыдущем разделе. Например, предположим, что несколько документов включают литерал "100%" в заголовок, и вы хотите искать все эти документы. Так как символ процента (%) является подстановочным знаком, его необходимо экранировать с помощью предложения Entity SQL ESCAPE для успешного выполнения поиска. Ниже приведен пример этого фильтра.
"title like '%100!%%' escape '!'"
В этом выражении поиска подстановочный знак процента (%) сразу после восклицательного знака (!) рассматривается как литерал, а не как подстановочный знак. Вы можете использовать любой символ в качестве escape-символа, за исключением подстановочных знаков Entity SQL и квадратных скобков ([ ]) символов. В предыдущем примере восклицательный знак (!) является escape-символом.
Пример
Следующие два запроса Entity SQL используют операторы LIKE и ESCAPE, чтобы определить, соответствует ли определенная символьная строка указанному шаблону. Первый запрос выполняет поиск Name символов, начинающихся с символов Down_. Этот запрос использует параметр ESCAPE, так как символ подчеркивания (_) является подстановочным знаком. Без указания параметра ESCAPE запрос будет выполнять поиск любых Name значений, начинающихся с слова Down , за которым следует любой один символ, отличный от символа подчеркивания. Запросы основаны на модели продаж AdventureWorks. Чтобы скомпилировать и запустить этот запрос, выполните следующие действия.
Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты PrimitiveType".
Передайте следующий запрос в качестве аргумента в
ExecutePrimitiveTypeQueryметод:
-- LIKE and ESCAPE
-- If an AdventureWorksEntities.Products contained a Name
-- with the value 'Down_Tube', the following query would find that
-- value.
Select value P.Name FROM AdventureWorksEntities.Products AS P
WHERE P.Name LIKE 'DownA_%' ESCAPE 'A'
-- LIKE
Select value P.Name FROM AdventureWorksEntities.Products AS P
WHERE P.Name LIKE 'BB%'