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';Tecnologia
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
WHEREBINARY column_name REGEXP'pattern';Tecnologia
Exemplos
1. Correspondência de padrões básicos
SELECT*FROM products
WHERE product_name REGEXP'^C';Tecnologia
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';Tecnologia
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}$';Tecnologia
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 \.:
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.
A palavra-chave
REGEXPno 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áusulaWHEREpara 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.Nessa sintaxe,
REGEXP 'pattern'verifica secolumn_namecorresponde ao padrão de expressão regular fornecido. Observe queREGEXPnã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-chaveBINARY:Exemplos
1. Correspondência de padrões básicos
Este exemplo seleciona todas as linhas da tabela
productsem queproduct_namecomeç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
Aqui, a consulta recupera e-mails da tabela
usersque contêm "gmail" ou "yahoo".3. Correspondência de padrões complexos
Este exemplo seleciona os números de telefone de
contactsque correspondem ao padrão de números de telefone da América do Norte no formatoXXX-XXX-XXXX.Dicas e práticas recomendadas
EXPLAINpara analisar o desempenho da consulta ao usar expressões regulares.^e$para indicar o início e o fim de uma cadeia de caracteres, respectivamente, para uma correspondência de padrão mais precisa.\.:REGEXP, que oferece suporte a padrões complexos, oLIKEé usado para correspondência de padrões mais simples com curingas%e_. UseLIKEpara padrões simples eREGEXPpara requisitos mais complexos.