特定の列に少なくとも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);