MySQL: Usando Expressões Regulares no SELECT

REGEX - Não passa de uma abreviação (do ingês) de Expressões Regulares. Aprenda neste tutorial - dica a fazer select usando expressões regulares.

Por Programação Pular para comentários

Antes de mais nada, quem ? esse tal de REGEX? N?o passa de uma abrevia??o (do ing?s) de Express?es Regulares. E de forma breve, "Uma express?o regular, na Inform?tica, define um padr?o a ser usado para procurar ou substituir palavras ou grupos de palavras. ? um meio preciso de se fazer buscas de determinadas por?es de texto", exemplo b?sico:

No MySQL utilizamos duas fun?es nativas que geram mesmo resultado (tamb?m me pergunto o porque de se criar v?rios nomes para a mesma coisa) s?o elas:

REGEXP e RLIKE


Eu prefiro o nome RLIKE mais n?o interessa, sendo assim segue uns exemplos do que se pode fazer com isso:
1 - Selecionar registros que come?am com n?meros de 0 ? 9
select * from tabela where meu_campo RLIKE "^[0-9][~]*"

^[0-9] = Os colchetes indicam que haver? uma busca por um caracter, o acento circunflexo indica que ser? procurado no in?cio da string e 0-9 indica que os n?meros ir?o variar entre 0 e 9 (0,1,2,3 ? 9)

[~]* = Isso aqui ? legal, estou usando no meu TCC, indica qualquer coisa.

2 - Selecionar registros que terminam com n?meros de 0 ? 9
select * from tabela where meu_campo RLIKE "[0-9]$"

$ = Ao contr?rio do acento circunflexo o cifr?o ? utilizado para indicar que a busca ser? realizada no final da string.

3 - Selecionar registros que contenham arroba e ponto (e-mail)
Esse ? bem simples, deve ser melhorado para consultas por e-mails v?lidos, voc? tamb?m pode pegar a l?gica do post feito pelo Couto usado no PHP sobre isso, Clicando Aqui.
select * from tabela
where email REGEXP "^[A-Z 0-9][^@~] [A-Z 0-9][@][A-Z 0-9][^@_~]*"


Lembrando que isso eu fiz aqui rapidinho para mostrar a l?gica da coisa, e que deve da pra simplifica muito ali em cima e deve te um monte de bug, mais explicando o que eu fiz:

^[A-Z 0-9][^@~] [A-Z 0-9][@] = Procura no in?cio da string que comecem por n?meros ou letras de A ? Z seguidos de qualquer coisa menos arroba (pra n?o pegar e-maisl com v?rias arrobas), sendo que o ultimo caracter antes da arroba dever? ser n?meros ou letras para n?o acontecer algo do tipo .@ ou _@, continuando temos apenas uma arroba.

[A-Z 0-9][^@_~]* = Finalizando a l?gica temos a in?cio com caracter ou n?mero seguidos de qualquer coisa menos arroba e underline, (essa parte ta MUITO ruim)

4 - Finalizando
Esperando que isso tenha ajudado alguem a ter uma no??o, caso contr?rio s? lamento, e desculpem as falhas, foi escrito mediante uma arma apontada na cabe?a.

Fonte: Blog Nodesign

Compartilhe com seus amigos:
Quer conversar com o(a) Redação, comente:
Carregar comentários
O que é mais importante em um smartphone?
Bateria(27,58%)
Câmera(10,54%)
Performance(56,99%)
Aparência(2,44%)
Tela(2,44%)