Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Определяет, соответствует ли определенный символ 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%'