sql >> データベース >  >> RDS >> MariaDB

MariaDBで数値を含まない値を取得する方法

    MariaDBを使用しているときに、数値を含まないすべての行を返す必要がある場合があります。

    技術的には、数字は単語やその他の記号で表すことができますが、この記事では「数字」は単に「数字」を意味します。そのため、数字を含まない値を見つけています。

    Productsというテーブルがあるとします。 ProductNameに次のデータが含まれています 列:

    SELECT ProductName 
    FROM Products;

    結果:

    +-------------------------------------+
    | ProductName                         |
    +-------------------------------------+
    | Left Handed Screwdriver             |
    | Right Handed Screwdriver            |
    | Bottomless Coffee Cup               |
    | Smash 2000 Sledgehammer             |
    | Chainsaw (includes 3 spare fingers) |
    | Bottomless Coffee Mugs (4 Pack)     |
    +-------------------------------------+
    >

    この列には明らかに文字データが含まれていますが、一部の行にはその文字データ内に数値が含まれています(数値型として保存されていない場合でも)。

    次のクエリを使用して、数字を含まない行のみを返すことができます。

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

    結果:

    +--------------------------+
    | ProductName              |
    +--------------------------+
    | Left Handed Screwdriver  |
    | Right Handed Screwdriver |
    | Bottomless Coffee Cup    |
    +--------------------------+

    予想どおり、数値を含まない行のみが返されます。

    この場合、NOT REGEXを使用しました パターンに一致するすべての行を検索する関数。パターンには、0からのすべての数字が含まれます 9へ 、およびその他の文字。

    これは次のように書くこともできます:

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

    結果:

    +--------------------------+
    | ProductName              |
    +--------------------------+
    | Left Handed Screwdriver  |
    | Right Handed Screwdriver |
    | Bottomless Coffee Cup    |
    +--------------------------+

    同じ出力。


    1. Oracle 11gクライアントにはODP.NETが必要ですか?

    2. MySQLのピボットテーブル

    3. Androidを搭載したドライバーJDBCPostgreSQL

    4. ASP.NET Core MVC、Entity Framework Core、およびSQLServerを使用したCRUD操作