sql >> Base de Datos >  >> RDS >> MariaDB

Cómo detectar si un valor contiene al menos un dígito numérico en MariaDB

Cuando trabaje con MariaDB, es posible que ocasionalmente necesite devolver todas las filas que contienen al menos un dígito numérico.

En tales casos, puede encontrar útil el siguiente ejemplo.

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            |
| Bottomless Coffee Cup               |
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Esta columna obviamente 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 contienen números representados por dígitos numéricos:

SELECT ProductName 
FROM Products
WHERE ProductName REGEXP '[0-9]+';

Resultado:

+-------------------------------------+
| ProductName                         |
+-------------------------------------+
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Como era de esperar, solo se devuelven las filas que contienen números.

En este caso, usamos el REGEXP 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.