MySQLREGEXP

Resumo : neste tutorial, você aprenderá como usar o REGEXPoperador MySQL para determinar se uma string corresponde a uma expressão regular.

Introdução ao operador MySQL REGEXP

O REGEXPoperador permite verificar se uma string corresponde a uma expressão regular .

Aqui está a sintaxe básica do REGEXPoperador:

expression REGEXP patternLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe, o REGEXPoperador retorna 1 se a expressão corresponder ao padrão ou 0 caso contrário.

Se a expressão ou padrão for NULL, o REGEXPoperador retornará NULL.

Observe que the REGEXPé sinônimo da REGEXP_LIKE()função.

Exemplos de operadores MySQL REGEXP

Tomaremos alguns exemplos de uso do REGEXPoperador.

1) Exemplos simples de operadores REGEXP

O exemplo a seguir usa o REGEXPoperador para verificar se uma string contém algum dígito:

SELECT 'MySQL 8.0' REGEXP '\\d+';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------------------------+
| 'MySQL 8.0' REGEXP '\\d+' |
+---------------------------+
|                         1 |
+---------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, o padrão '\\d+'corresponde a um ou mais dígitos. Como a string MySQL 8.0contém os dígitos 8e 0, o REGEXPretorno é 1.

O exemplo a seguir verifica se a string 'MySQL 8.0'tem uma versão que inclui um dígito, um ponto e um dígito:

SELECT 
  'MySQL 8.0' REGEXP '\\d\.\\d';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------------------+
| 'MySQL 8.0' REGEXP '\\d\.\\d' |
+-------------------------------+
|                             1 |
+-------------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O padrão '\\d\.\\d'corresponde a um dígito, seguido pelo caractere (.) e depois por outro dígito.

Se você usar a string de entrada como 'MySQL 8', o REGEXPoperador retornará 0 conforme mostrado na consulta a seguir:

SELECT 
  'MySQL 8' REGEXP '\\d\.\\d';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------------------------+
| 'MySQL 8' REGEXP '\\d\.\\d' |
+-----------------------------+
|                           0 |
+-----------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

2) Usando o operador MySQL REGEXP com dados da tabela

Usaremos a productstabela do banco de dados de exemplo para a demonstração:

Operador MySQL REGEXP - Tabela de exemplo

A consulta a seguir usa o REGEXPoperador para encontrar os produtos cujos nomes contêm o número 193seguido por qualquer dígito, por exemplo 1930,:

SELECT 
  productName 
FROM 
  products 
WHERE 
  productName REGEXP '193\\d';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------------------------------+
| productName                               |
+-------------------------------------------+
| 1937 Lincoln Berline                      |
| 1936 Mercedes-Benz 500K Special Roadster  |
| 1932 Model A Ford J-Coupe                 |
| 1936 Harley Davidson El Knucklehead       |
| 1934 Ford V8 Coupe                        |
| 1932 Alfa Romeo 8C2300 Spider Sport       |
| 1939 Cadillac Limousine                   |
| 1939 Chevrolet Deluxe Coupe               |
| 1938 Cadillac V-16 Presidential Limousine |
| 1937 Horch 930V Limousine                 |
| 1936 Mercedes Benz 500k Roadster          |
| 1936 Chrysler Airflow                     |
| 1930 Buick Marquette Phaeton              |
+-------------------------------------------+
13 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use o REGEXPoperador para determinar se uma string corresponde a uma expressão regular.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *