特定の列に少なくとも1つの数値を含む行のみをデータベーステーブルで検索する必要がある場合があります。
技術的には、数字は単語やその他の記号で表すことができますが、ここで「数字」は「数字」を意味します。
SQL Server
SQL Serverでは、LIKEを使用できます 演算子:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
この例では、ProductNameが返されます Productsの列 ProductNameに少なくとも1桁の数字があるテーブル 列。
Oracle
Oracleでは、 REGEXP_LIKEを使用できます。 正規表現パターンの条件:
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[0-9]+');
OracleのREGEXP_LIKE 条件はPOSIX正規表現標準に準拠しています。したがって、次のパターンで同じ結果を得ることができます。
SELECT ProductName
FROM Products
WHERE REGEXP_LIKE(ProductName, '[[:digit:]]'); MySQL
MySQLでは、 REGEXPを使用できます 機能:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; MySQLでPOSIXを使用することもできます:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; MariaDB
MariaDBにはREGEXPもあります 関数なので、MySQLと同じコードを使用できます:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+'; MariaDBでPOSIXを使用することもできます:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[[:digit:]]'; PostgreSQL
PostgreSQLに相当するものは次のとおりです:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+'; そして、POSIXに相当するもの:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[[:digit:]]'; SQLite
SQLiteでは、次のコードを使用できます:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
REGEXP 演算子は、REGEXP()の特別な構文です。 SQLiteのユーザー関数。
したがって、次のコードを使用して同じ結果を得ることができます。
SELECT ProductName
FROM Products
WHERE REGEXP('[0-9]+', ProductName);