A veces, es posible que necesite buscar en una tabla de base de datos solo aquellas filas que contienen al menos un número en una columna determinada.
Técnicamente, los números se pueden representar con palabras y otros símbolos, pero aquí "número" significa "dígito numérico".
Abajo hay ejemplos de cómo encontrar filas que contienen al menos un número en varios DBMS basados en SQL.
Servidor SQL
En SQL Server, podemos usar LIKE operador:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Ese ejemplo devuelve el ProductName columna de Products tabla donde hay al menos un dígito en el ProductName columna.
Oráculo
En Oracle, podemos usar el REGEXP_LIKE condición con un patrón de expresión regular:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
REGEXP_LIKE de Oracle condición cumple con el estándar de expresiones regulares POSIX. Por lo tanto, podemos obtener el mismo resultado con el siguiente patrón:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]'); MySQL
En MySQL, podemos usar REGEXP función:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; También podemos usar POSIX en MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; MariaDB
MariaDB también tiene un REGEXP función, por lo que podemos usar el mismo código que con MySQL:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; También podemos usar POSIX en MariaDB:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; PostgreSQL
Aquí está el equivalente de PostgreSQL:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+'; Y el equivalente POSIX:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]'; SQLite
En SQLite, podemos usar el siguiente código:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
El REGEXP operador es una sintaxis especial para REGEXP() función de usuario en SQLite.
Por lo tanto, podemos usar el siguiente código para obtener el mismo resultado:
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);