Resumo : neste tutorial, você aprenderá como usar o REGEXP
operador MySQL para determinar se uma string corresponde a uma expressão regular.
Introdução ao operador MySQL REGEXP
O REGEXP
operador permite verificar se uma string corresponde a uma expressão regular .
Aqui está a sintaxe básica do REGEXP
operador:
expression REGEXP pattern
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe, o REGEXP
operador 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 REGEXP
operador retornará NULL
.
Observe que the REGEXP
é sinônimo da REGEXP_LIKE()
função.
Exemplos de operadores MySQL REGEXP
Tomaremos alguns exemplos de uso do REGEXP
operador.
1) Exemplos simples de operadores REGEXP
O exemplo a seguir usa o REGEXP
operador 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.0
contém os dígitos 8
e 0
, o REGEXP
retorno é 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 REGEXP
operador 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 products
tabela do banco de dados de exemplo para a demonstração:
A consulta a seguir usa o REGEXP
operador para encontrar os produtos cujos nomes contêm o número 193
seguido 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
REGEXP
operador para determinar se uma string corresponde a uma expressão regular.