sql >> Base de Datos >  >> RDS >> Mysql

Encuentra valores que no contienen números en MySQL

Si necesita devolver todas las filas que no contienen números, lo siguiente podría ayudar.

Estrictamente hablando, los números se pueden representar con palabras y otros símbolos, pero para este artículo, "número" simplemente significa "dígito numérico". Así que estamos encontrando valores que no contienen dígitos numéricos.

Ejemplo

Supongamos que tenemos una tabla llamada Products con los siguientes datos en su ProductName columna:

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 columna contiene datos de caracteres, pero algunas filas contienen números dentro de esos datos de caracteres (aunque no se almacenan como un tipo numérico).

Podemos usar la siguiente consulta para devolver solo aquellas filas que no contienen dígitos numéricos:

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 era de esperar, solo se devuelven las filas que no contienen números.

Aquí usamos NOT REGEX de MySQL función para encontrar todas las filas que coincidieron con un patrón. El patrón abarca todos los dígitos numéricos desde 0 a 9 , además de cualquier otro carácter.

Esto también podría escribirse así:

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            |
+--------------------------+