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

Encontre valores que não contenham números no MySQL


Se você precisar retornar todas as linhas que não contêm números, o seguinte pode ajudar.

Estritamente falando, os números podem ser representados por palavras e outros símbolos, mas para este artigo “número” significa simplesmente “dígito numérico”. Portanto, estamos encontrando valores que não contêm dígitos numéricos.

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 não contêm nenhum dígito numérico:
SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

Resultado:
+--------------------------+
| ProductName              |
+--------------------------+
| Left handed screwdriver  |
| Right handed screwdriver |
| Long Weight (blue)       |
| Long Weight (green)      |
| Straw Dog Box            |
+--------------------------+

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

Aqui usamos o NOT REGEX 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.

Isso também poderia ser escrito assim:
SELECT ProductName 
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');

Resultado:
+--------------------------+
| ProductName              |
+--------------------------+
| Left handed screwdriver  |
| Right handed screwdriver |
| Long Weight (blue)       |
| Long Weight (green)      |
| Straw Dog Box            |
+--------------------------+