Palavra-chave REGEXP do MySQL
A palavra-chave REGEXP
no MySQL é usada para correspondência de padrões usando expressões regulares. Ele permite que você pesquise padrões complexos em cadeias de caracteres nas tabelas do banco de dados.
Uso
A palavra-chave REGEXP
é normalmente usada na cláusula WHERE
para filtrar registros com base na correspondência de uma string com um padrão de expressão regular especificado. É uma ferramenta avançada para pesquisa de texto e reconhecimento de padrões. As expressões regulares do MySQL são baseadas no padrão POSIX e podem diferir ligeiramente de outras implementações de regex.
SELECT column_name
FROM table_name
WHERE column_name REGEXP 'pattern';
Nessa sintaxe, REGEXP 'pattern'
verifica se column_name
corresponde ao padrão de expressão regular fornecido. Observe que REGEXP
não diferencia maiúsculas de minúsculas por padrão. Para fazer a correspondência com distinção entre maiúsculas e minúsculas, use a palavra-chave BINARY
:
SELECT column_name
FROM table_name
WHERE BINARY column_name REGEXP 'pattern';
Exemplos
1. Correspondência de padrões básicos
SELECT *
FROM products
WHERE product_name REGEXP '^C';
Este exemplo seleciona todas as linhas da tabela products
em que product_name
começa com a letra "C". O padrão '^C'
usa ^
para indicar o início da cadeia de caracteres, garantindo que somente os nomes que começam com 'C' sejam correspondidos.
2. Correspondência de vários padrões
SELECT email
FROM users
WHERE email REGEXP 'gmail|yahoo';
Aqui, a consulta recupera e-mails da tabela users
que contêm "gmail" ou "yahoo".
3. Correspondência de padrões complexos
SELECT phone_number
FROM contacts
WHERE phone_number REGEXP '^[0-9]{3}-[0-9]{3}-[0-9]{4}$';
Este exemplo seleciona os números de telefone de contacts
que correspondem ao padrão de números de telefone da América do Norte no formato XXX-XXX-XXXX
.
Dicas e práticas recomendadas
- Otimize o desempenho. As expressões regulares podem consumir muitos recursos; use-as criteriosamente e considere a indexação de colunas sempre que possível. Use o site
EXPLAIN
para analisar o desempenho da consulta ao usar expressões regulares. - Teste os padrões separadamente. Teste suas expressões regulares em um ambiente separado para garantir que elas funcionem conforme o esperado antes de aplicá-las às suas consultas.
- Use as âncoras com sabedoria. Use
^
e$
para indicar o início e o fim de uma cadeia de caracteres, respectivamente, para uma correspondência de padrão mais precisa. - Escape de caracteres especiais. Se o seu padrão incluir caracteres especiais, certifique-se de que eles tenham sido escapados corretamente para evitar correspondências inesperadas. Por exemplo, para corresponder a um ponto literal, use
\.
:
WHERE column_name REGEXP '\\.'
REGEXP
, que oferece suporte a padrões complexos, o LIKE
é usado para correspondência de padrões mais simples com curingas %
e _
. Use LIKE
para padrões simples e REGEXP
para requisitos mais complexos.