Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como detectar se um valor contém pelo menos um dígito numérico no MySQL


Se você precisar retornar todas as linhas que contenham pelo menos um dígito numérico no MySQL, o exemplo a seguir pode ser útil.

Exemplo


Suponha que tenhamos uma tabela chamada Products com os seguintes dados em seu ProductName coluna:
SELECT ProductName 
FROM Products;

Resultado:
+-------------------------------------+
| ProductName                         |
+-------------------------------------+
| Left handed screwdriver             |
| Right handed screwdriver            |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledge Hammer            |
| Chainsaw (Includes 5 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Esta coluna contém dados de caracteres, mas algumas linhas contêm números dentro desses dados de caracteres (mesmo que não sejam armazenados como um tipo numérico).

Podemos usar a seguinte consulta para retornar apenas as linhas que contêm números representados por dígitos numéricos:
SELECT ProductName 
FROM Products
WHERE ProductName REGEXP '[0-9]+';

Resultado:
+-------------------------------------+
| ProductName                         |
+-------------------------------------+
| Smash 2000 Sledge Hammer            |
| Chainsaw (Includes 5 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Conforme esperado, somente as linhas que contêm números são retornadas.

Neste caso, usamos o REGEXP do MySQL função para encontrar todas as linhas que corresponderam a um padrão. O padrão abrange todos os dígitos numéricos de 0 para 9 , além de qualquer outro caractere.