MySQL - Regexps
Você viu o padrão do MySQL combinando com LIKE ...%. MySQL suporta outro tipo de operação de correspondência de padrões com base nas expressões regulares eREGEXPoperador. Se você conhece PHP ou PERL, é muito simples de entender, porque essa correspondência é a mesma que os scripts de expressões regulares.
A seguir está a tabela de padrões, que pode ser usada junto com o REGEXP operador.
padronizar | O que o padrão corresponde |
---|---|
^ | Começo da corda |
$ | Fim da corda |
. | Qualquer personagem |
[...] | Qualquer caractere listado entre colchetes |
[^ ...] | Qualquer caractere não listado entre colchetes |
p1 | p2 | p3 | Alternação; corresponde a qualquer um dos padrões p1, p2 ou p3 |
* | Zero ou mais instâncias do elemento anterior |
+ | Uma ou mais instâncias do elemento anterior |
{n} | n instâncias do elemento anterior |
{m, n} | m a n instâncias do elemento anterior |
Exemplos
Agora, com base na tabela acima, você pode dispositivos vários tipos de consultas SQL para atender aos seus requisitos. Aqui, estou listando alguns para sua compreensão.
Considere que temos uma mesa chamada person_tbl e está tendo um campo chamado name -
Consulta para encontrar todos os nomes que começam com 'st' -
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Consulte para encontrar todos os nomes que terminam com 'ok' -
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Consulte para encontrar todos os nomes, que contêm 'mar' -
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Consulte para encontrar todos os nomes que começam com uma vogal e terminam com 'ok' -
mysql> SELECT FirstName FROM intque.person_tbl WHERE FirstName REGEXP '^[aeiou].*ok$';