Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

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 '\\.'
  • Nota de compatibilidade. Embora o MySQL ofereça suporte a expressões regulares básicas, ele não oferece suporte a recursos como lookaheads e lookbehinds.
  • Diferença de LIKE. Ao contrário do 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.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça