mysql like tutorial with syntax
Este tutorial explica a correspondência de padrões usando o operador MySQL LIKE:
A correspondência de padrões é um recurso importante em quase todas as linguagens de programação como - Java / C # / Python etc, que principalmente aproveitam o uso de expressões regulares para correspondência de padrões contra uma determinada entrada de string.
O MySQL fornece um operador fácil de usar chamado LIKE, que pode ser usado para comparar os valores da String com os padrões especificados e é útil para consultar grandes conjuntos de dados.
O que você aprenderá:
MySQL LIKE
Sintaxe:
O operador LIKE é usado junto com a cláusula WHERE em uma consulta SELECT.
Em uma consulta simples, a sintaxe é a seguinte.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
Os diferentes componentes desta sintaxe são explicados da seguinte forma:
- {column_names}: Esses são os nomes das colunas a serem exibidos como uma saída da consulta SELECT. Esses valores podem ser * para selecionar todas as colunas ou nomes separados por vírgula de colunas individuais.
- {Nome da tabela}: Este é o nome da tabela onde a consulta deve ser executada.
- {column_with_string_value}: Esta é a coluna cujos valores precisam ser executados em relação ao padrão especificado. Observe que qualquer comparação é feita em uma coluna que pode ser convertida em String.
- {match_pattern}: Esta é a expressão de correspondência com a qual os valores da coluna precisam ser comparados. Uma amostra de padrões de correspondência pode ser - ‘ SM% ’. Isso corresponderia a todos os valores da coluna começando com SM. Exemplo: SMART, SMELL, SMOKE, etc.
Semelhante a esta consulta, o operador LIKE pode ser usado mesmo com consultas complexas com JOINS, etc., pois o LIKE é apenas um operador de comparação e pode ser usado sempre que a comparação do valor da coluna for possível.
Observação: Semelhante a LIKE, também podemos usar sua variante negada, que é ‘NOT LIKE’. Portanto, neste caso, em vez de retornar os resultados correspondentes, as consultas com o operador ‘NOT LIKE’ retornarão resultados não correspondentes.
Padrões de correspondência do MySQL
O operador LIKE pode ser usado junto com 2 tipos de padrões. Eles estão listados na tabela abaixo:
Padrão | |
---|---|
% (Porcentagem) | Corresponde a qualquer número de caracteres (incluindo nenhum caractere) |
_ (Sublinhado) | Corresponde a um único caractere |
Agora veremos alguns exemplos usando ambos os padrões.
% Match Pattern
% padrão é usado quando você deseja combinar 0 ou mais caracteres antes ou depois de sua colocação.
Por exemplo: se você quiser combinar uma string ‘it’ de uma coluna com nomes de funcionários. Suponha que existam nomes como - Amit, Anchit, Arpit, Nikita, Smith, etc. Podemos ver que todos os nomes têm a substring ‘it’. Mas seu posicionamento é diferente.
Suponha que o nome da coluna seja nomes e o nome da mesa é student_names.
Use os seguintes scripts de criação de dados de amostra para preencher o banco de dados:
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
Vamos ver como podemos usar o padrão% Match.
SELECT * FROM student_names WHERE name LIKE '%it%'
Resultado:
nome |
---|
Amit |
Ankit |
Smith |
Nikita |
Mohit |
Agora, o que isso significa é que pode corresponder a uma string que tenha a substring ‘it’ em qualquer local e pode haver qualquer número de caracteres antes e depois da correspondência. Você pode ver que todos os nomes correspondentes são retornados como saída.
Reescreva a consulta para que correspondam apenas os nomes que terminam com a substring ‘it’.
SELECT * FROM student_names WHERE name LIKE '%it'
Então, aqui, removemos o sinal de ‘%’ final e colocamos a string ‘isso’ no final. Este padrão permitiria qualquer número de caracteres antes de ‘it’, mas a String deve terminar com a substring ‘it’.
Resultado da consulta acima:
nome |
---|
Amit |
Ankit |
Mohit |
Observação: É importante notar aqui que o padrão mencionado usando o caractere ‘%’ não diferencia maiúsculas de minúsculas. Portanto, para o exemplo acima, em vez de ‘% it’ poderíamos ter usado ‘% IT’ ou ‘% it’, a saída ainda teria permanecido a mesma.
_Padrão de correspondência
Vamos agora dar uma olhada em como podemos usar o padrão ‘_’ Match. Sabemos que ‘_’ permite exatamente um caractere.
Suponha que desejamos consultar todos os nomes de 5 letras da mesma tabela (student_names).
Para usar a correspondência de padrão ‘_’ neste caso, especificamos cinco _ (sublinhados) junto com o padrão LIKE, que corresponderá apenas aos nomes com 5 caracteres de comprimento.
SELECT * FROM student_names WHERE name LIKE '_____'
Resultado:
nome |
---|
Ankit |
Mohit |
Smith |
Vejamos outro exemplo. Suponha que desejemos encontrar todos os nomes de 5 letras que terminam com a substring ‘it’
SELECT * FROM student_names WHERE name LIKE '___it'
Aqui, usamos 3 '_' (sublinhados) e a substring real que precisa ser correspondida.
Resultado:
nome |
---|
Ankit |
Mohit |
Smith |
Combinando% E _ Matcher Padrão
Nesta seção, discutiremos como podemos combinar os combinadores de padrão% e _.
melhor aplicativo de download de música para Android
Suponha que desejamos encontrar todos os nomes que têm substring ‘it’ e podem ter exatamente 2 caracteres após a palavra ‘it’
SELECT * FROM student_names WHERE name LIKE '%it_'
Aqui combinamos os padrões de correspondência% e _ para encontrar a correspondência exata.
Resultado:
nome |
---|
Smith |
Nikita |
Usando NOT LIKE
NOT LIKE é a negação exata do que o operador LIKE retorna. ou seja, ele retornará todos os registros / linhas que não correspondem à expressão de correspondência de padrão.
Exemplo: Suponha que desejamos encontrar todos os nomes que não tenham 4 caracteres.
SELECT * FROM student_names WHERE name NOT LIKE '____'
Resultado:
nome |
---|
Ankit |
Smith |
Nikita |
Mohit |
Você pode ver na saída acima, ele retorna apenas os nomes que não têm 4 caracteres.
Usando MySQL LIKE com caractere ESCAPE
Aqui veremos como podemos usar caracteres ESCAPE junto com o matcher de padrão.
tipos de herança c ++
Suponha que, em uma situação hipotética, tenhamos nomes que na verdade contêm% e _ caracteres e desejamos encontrar esses nomes, então precisamos realmente corresponder a% & _. Isso pode ser feito usando um caractere de escape.
Observação: O valor padrão do caractere de escape é ‘’ (barra invertida)
Adicione alguns dados às tabelas student_names que contêm nomes com% e _ caracteres.
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
Abaixo estão alguns exemplos para entender isso melhor.
# 1) Encontre todos os nomes que têm o sinal%.
SELECT * FROM student_names WHERE name LIKE '%\%%'
Resultado:
nome |
---|
Darre% n |
Dane_Sherman% |
#dois) Encontre todos os nomes que possuem um sinal _
SELECT * FROM student_names WHERE name LIKE '%\_%'
Resultado:
nome |
---|
Júlia Roberts |
Dane_Sherman% |
Em ambos os exemplos acima, você pode ver que usamos um caractere de escape para mencionar os caracteres% e _ - ou seja, para corresponder a um caractere%, usamos um caractere de escape antes do sinal% - ou seja, como ‘\%’
Usando um caractere de escape de sua escolha
Agora vamos tentar estender o exemplo anterior.
O MySQL permite que você especifique seu próprio caractere ESCAPE que o MySQL deve usar ao executar a pesquisa de correspondência de padrões.
Vamos tentar atualizar o caractere Escape para ‘!’ Em vez do valor padrão ‘’
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
Resultado:
nome |
---|
Júlia Roberts |
Dane_Sherman% |
No exemplo acima, substituímos o caractere de escape por ‘!’ E usamos o mesmo na correspondência de padrão ‘%! _%’ - onde queremos corresponder um caractere ‘_’ no nome.
perguntas frequentes
P # 1) O que %% significa em SQL?
Responda: ‘%%’ não vai corresponder a nada em específico. É equivalente a ter apenas 1% de personagem. Se você quiser combinar o próprio caractere ‘%’ no valor da coluna, pode usá-lo com um caractere de escape que tem um valor padrão de ’.
Suponha que você deseja corresponder a um valor de coluna com um caractere ‘%’, você pode escrever a correspondência de padrão como - LIKE ‘% %%’ (observe uma barra invertida extra antes do caractere de porcentagem do meio (%).
P # 2) O que é um caractere curinga no MySQL?
Responda: O operador MySQL LIKE funciona com 2 caracteres curinga no MySQL para obter diferentes formas de correspondência de padrões.
Esses são:
- % - Isso corresponderia a qualquer número de caracteres (incluindo zero)
- _ - Isso corresponderia exatamente a um caractere
P # 3) Como escrevo uma consulta LIKE no MySQL?
Responda: LIKE é um operador simples geralmente usado junto com a cláusula WHERE em uma consulta SELECT. É usado para comparar os valores da coluna com o padrão especificado.
Exemplo: Suponha que haja uma tabela com detalhes_de_funcionários e uma coluna chamada endereço que contém o número da casa, nome da rua, etc. Você deseja descobrir todos os funcionários que têm rua definida como ‘Oxford Lane’ como endereço.
Podemos usar o operador LIKE para escrever tal consulta.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
Observe que os padrões de string são não diferencia maiúsculas de minúsculas ao ser correspondido com a expressão de correspondência especificada.
P # 4) Como especificar um caractere Escape diferente junto com o operador LIKE?
Responda: O MySQL fornece uma maneira de especificar um caractere Escape personalizado que substituiria o padrão, ou seja,
Aqui está um exemplo que mudaria o caractere de escape para ‘!’ Para a execução da consulta.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
Na consulta acima, mencionamos ‘!’ Como o caractere de escape e usamos o mesmo na expressão de correspondência.
Q # 5) Como combinar um caractere% ou _ real usando o operador LIKE?
Responda: Os caracteres como% e _ são caracteres curinga especiais que, quando realmente precisam ser correspondidos como parte da String, devem ser escapados.
O caractere de escape padrão é ‘’ e deve ser usado antes de mencionar o caractere curinga.
Suponha que queremos combinar o caractere ‘_’ contra um determinado valor de coluna, então podemos escrever a expressão de correspondência como - GOSTAR '%\_%'
Conclusão
Neste tutorial, aprendemos sobre as diferentes maneiras em que podemos usar o operador LIKE (ou a versão negada, ou seja, NOT LIKE).
Também discutimos os caracteres curinga suportados, por exemplo, _ e% e como eles podem ser escapados se precisarem fazer parte da String a ser pesquisada / correspondida.
O operador LIKE é uma funcionalidade poderosa fornecida pelo MySQL e geralmente é usado para filtrar registros ao consultar grandes conjuntos de dados.
Leitura recomendada
- Tutorial de criação de visualização do MySQL com exemplos de código
- MySQL UNION - Tutorial abrangente com exemplos de união
- Tutorial de criação de tabela MySQL com exemplos
- MySQL Insert Into Table - Sintaxe e exemplos de instruções de inserção
- Sintaxe de comando Unix Cat, opções com exemplos
- Tutorial C # Regex: O que é uma expressão regular C #
- Tutorial de regex C ++: expressões regulares em C ++ com exemplos
- Tutorial Java Regex com exemplos de expressões regulares