sql >> データベース >  >> NoSQL >> MongoDB

SQLで値に少なくとも1桁の数字が含まれているかどうかを検出する

    特定の列に少なくとも1つの数値を含む行のみをデータベーステーブルで検索する必要がある場合があります。

    技術的には、数字は単語やその他の記号で表すことができますが、ここで「数字」は「数字」を意味します。

    以下は、さまざまなSQLベースのDBMSで少なくとも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);

    1. MongoEngineとPyMongoを一緒に使用する

    2. MongoDBクエリ結果をJSONファイルにエクスポートする方法

    3. 存在する場合は更新する方法、そうでない場合は新しいドキュメントを挿入しますか?

    4. 最大ドキュメントサイズを超えずに集計を作成するにはどうすればよいですか?