MySQLi - Regexps

Você viu o padrão MySQLi correspondente com LIKE ...%. O MySQLi suporta outro tipo de operação de correspondência de padrões baseada em expressões regulares e oREGEXPoperador. Se você conhece PHP ou PERL, é muito simples de entender, porque essa correspondência é muito semelhante às expressões regulares de script.

A seguir está a tabela de padrões, que pode ser usada junto com 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 tabela chamada tutorials_inf e ela tem um campo chamado name -

Consulta para encontrar todos os nomes que começam com 'sa'

mysql>  SELECT * FROM tutorials_inf WHERE name REGEXP '^sa';

O exemplo de saída deve ser assim -

+----+------+
| id | name |
+----+------+
|  1 | sai  |
+----+------+
1 row in set (0.00 sec)

Consulta para encontrar todos os nomes que terminam com 'ai'

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP 'ai$';

O exemplo de saída deve ser assim -

+----+------+
| id | name |
+----+------+
|  1 | sai  |
+----+------+
1 row in set (0.00 sec)

Consulte para encontrar todos os nomes que contenham 'a'

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP 'a';

O exemplo de saída deve ser assim -

+----+-------+
| id | name  |
+----+-------+
|  1 | sai   |
|  3 | ram   |
|  4 | johar |
+----+-------+
3 rows in set (0.00 sec)

Consulta para encontrar todos os nomes que começam com uma vogal

mysql>  SELECT * FROM tutorials_inf WHERE name REGEXP '^[aeiou]';