Compartilhar via


LIKE (Entity SQL)

Determina se um caractere String específico corresponde a um padrão especificado.

Sintaxe

match [NOT] LIKE pattern [ESCAPE escape]

Argumentos

match Uma expressão SQL de entidade que é avaliada como um String.

pattern Um padrão a ser correspondido ao especificado String.

escape Um caractere de escape.

NOT Especifica que o resultado de LIKE seja negado.

Valor de retorno

true se o string padrão corresponder; caso contrário, false.

Observações

Expressões SQL de entidade que usam o operador LIKE são avaliadas da mesma forma que expressões que usam igualdade que os critérios de filtro. No entanto, expressões SQL de entidade que usam o operador LIKE podem incluir literais e caracteres curinga.

A tabela a seguir descreve a sintaxe do padrão string.

Caractere curinga Descrição Exemplo
% Qualquer string um de zero ou mais caracteres. title like '%computer%' localiza todos os títulos com a palavra "computer" em qualquer lugar no título.
_ (sublinhado) Qualquer caractere único. firstname like '_ean' localiza todos os nomes de quatro letras que terminam com "ean"como Dean ou Sean.
[ ] Qualquer caractere único no intervalo especificado ([a-f]) ou definido ([abcdef]). lastname like '[C-P]arsen' localiza sobrenomes terminando com "arsen" e começando com qualquer caractere único entre C e P, como Carsen ou Larsen.
[^] Qualquer caractere único que não está no intervalo especificado ([^a-f]) ou definido ([^abcdef]). lastname like 'de[^l]%' localiza todos os sobrenomes que começam com "de" e não incluem "l" como a letra a seguir.

Observação

O operador Entity SQL LIKE e a System.DateTime cláusula ESCAPE não podem ser aplicados ou System.Guid valores.

O LIKE dá suporte à correspondência de padrões ASCII e à correspondência de padrões Unicode. Quando todos os parâmetros são caracteres ASCII, a correspondência de padrões ASCII é executada. Se um ou mais dos argumentos forem Unicode, todos os argumentos serão convertidos em Unicode e a correspondência de padrões Unicode será executada. Quando você usa Unicode com LIKE, espaços em branco à direita são significativos; no entanto, para não Unicode, espaços em branco à direita não são significativos. A sintaxe de cadeia de caracteres padrão do Entity SQL é a mesma do Transact-SQL.

Um padrão pode incluir caracteres normais e curingas. Durante a correspondência de padrões, os caracteres regulares devem corresponder exatamente aos caracteres especificados no caractere string. No entanto, os caracteres curinga podem ser correspondidos a fragmentos arbitrários da cadeia de caracteres. Quando ele é usado com caracteres curinga, o operador LIKE é mais flexível do que os operadores de comparação de cadeia de caracteres = e != .

Observação

Você poderá usar extensões específicas do provedor se direcionar a um provedor específico. No entanto, esses constructos podem ser tratados de forma diferente por outros provedores, por exemplo. O SqlServer dá suporte a padrões [primeiro-último] e [^último] em que o primeiro corresponde exatamente a um caractere entre o primeiro e o último, e o último corresponde exatamente a um caractere que não está entre o primeiro e o último.

Fuga

Usando a cláusula ESCAPE, você pode pesquisar cadeias de caracteres que incluem um ou mais caracteres curinga especiais descritos na tabela na seção anterior. Por exemplo, suponha que vários documentos incluam o literal "100%" no título e você deseja pesquisar todos esses documentos. Como o caractere percentual (%) é um caractere curinga, você deve escapar dele usando a cláusula Entity SQL ESCAPE para executar a pesquisa com êxito. Veja a seguir um exemplo desse filtro.

"title like '%100!%%' escape '!'"

Nesta expressão de pesquisa, o caractere curinga percentual (%) imediatamente após o caractere de ponto de exclamação (!) é tratado como um literal, em vez de como um caractere curinga. Você pode usar qualquer caractere como um caractere de escape, exceto os caracteres curinga sql da entidade e os caracteres de colchete ([ ]). No exemplo anterior, o ponto de exclamação (!) caractere é o caractere de escape.

Exemplo

As duas consultas SQL de entidade a seguir usam os operadores LIKE e ESCAPE para determinar se uma cadeia de caracteres específica corresponde a um padrão especificado. A primeira consulta pesquisa o Name que começa com os caracteres Down_. Essa consulta usa a opção ESCAPE porque o sublinhado (_) é um caractere curinga. Sem especificar a opção ESCAPE, a consulta pesquisaria todos Name os valores que começam com a palavra Down seguida por qualquer caractere único que não seja o caractere de sublinhado. As consultas são baseadas no Modelo de Vendas adventureworks. Para compilar e executar essa consulta, siga estas etapas:

  1. Siga o procedimento em How to: Execute a Query that Returns PrimitiveType Results.

  2. Passe a consulta a seguir como um argumento para o ExecutePrimitiveTypeQuery método:

-- 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%'

Consulte também