Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Expressões regulares no MySQLPessoal, as expressões regulares no MySQL são uma maneira poderosa de especificar um pesquisa complexa.O MySQL usa a implementação do Henry Spencer de expressões regulares, a qual está emconformidade com o POSIX 1003.2. MySQL usa a versão extendida.Um exemplo de como podemos usar as expressões regulares:Para encontrar nomes começando com ‘m’, utilize ‘^’ para combinar com o começo do nome:mysql> SELECT FROM clientes WHERE nome REGEXP "^m";Antes da versão 3.23.4 do MySQL, REGEXP era caso sensitivo.Ou seja se na nossa tabela o unico nome cadastrado fosse "Marcio", nossa consulta não iria retornar nadaNeste caso, para combinar letras ‘m’ maiusculas e minusculas, você utilizaria a seguinte consultamysql> SELECT FROM clientes WHERE nome REGEXP "^[mM]";A partir do MySQL 3.23.4, se você realmente deseja forçar uma comparação REGEXP comcaso sensitivo, utilize a palavra-chave BINARY para tornar uma das strings em uma stringbinárias. Esta consulta irá combinar somente com ‘b’s minusculos no começo de um nome:mysql> SELECT FROM clientes WHERE nome REGEXP BINARY "^m";Tambem podemos usar as expressões regulares para encontrar nomes, ou palavras terminadas com algum caracter especifico, mais ou menos assim:O coringa ‘$’ indica no final da palavra...mysql> SELECT FROM clientes WHERE nome REGEXP "io$";Encontrando nomes que contenham um caracter especifico em qualquer parte do mesmo:mysql> SELECT FROM clientes WHERE nome REGEXP "m"; Podemos usar as expressões para encontrar palavras com um certo numero de caracteresseis por exemplo:Caracters coringas usados:No inicio "^" e "$" no fim... E entre eles "." cada "." refere-se a uma letra, então no nosso caso ficaria assim mysql> SELECT FROM clientes WHERE nome REGEXP "^......$";Você pode tambem escrever a consulta anterior utilizando o operador "{n}" “repete-n-vezes”:mysql> SELECT FROM clientes WHERE nomes REGEXP "^.{5}$";Agora vamos elaborar algo um pouco mais complicado:mysql> SELECT FROM clientes WHERE nome REGEXP M[ar]*s";intendendo o que ele faz...Procura por uma palavra que começe com "M" que tenha um numero qualquer de caracteres "a" e "r" e que termine com "s"pessoal assim que tiver tempo irei acrescentar mais exemplos de expressões regulares...abraços a todos.Marcio
Carregando comentários...