MySQL - Filtrando CEP com a ajuda do REGEXP

Vamos a uma dica rápida de REGEXP, utilizando como base a seleção de linhas em uma tabela que possuem CEP preenchido.

Nossa tabela possui a seguinte estrutura:

ID Endereço CEP
1 Rua peruibe 459 05698426
2 Rua martim 67 -
3 Av Rebouças 1000 08968547

Para selecionar apenas as linhas que possuem CEP utilizamos a seguinte Query:

SELECT ID,ENDERECO,CEP FROM tabela WHERE CEP REGEXP '^0[0-9]{7}$' 

O que nossa REGEXP faz?

^0 : faz com que o MySQL olhe a partir do primeiro caractere e pegue apenas os valores com zero;
[0-9]{7} : após o primeiro caractere, que deve ser zero, pega os campos cujos próximos 7 valores sejam numéricos
$ : finaliza o REGEXP, ignorando tudo mais que venha depois dos oito caracteres numéricos indicados anteriormente.

O resultado da Query seria:


ID Endereço CEP
1 Rua peruibe 459 05698426


3 Av Rebouças 1000 08968547

Abraço!

Comentários

Postagens mais visitadas deste blog

MySQL - Completando quantidades fixas de caracteres com as funções LPAD() e RPAD()

MySQL - Clonando tabelas na linha de comando

PHP - Gerando arquivo em UTF-8 com fwrite() e utf8_encode()