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

列にNULLが含まれるレコードを検索する方法

    問題:

    列にNULLが含まれるレコードを検索する必要があります。

    例:

    私たちのデータベースには、children 4列のデータ:idfirst_namemiddle_name 、およびlast_name

    id first_name ミドルネーム last_name
    1 ジョン カール ジャクソン
    2 トム NULL トムソン
    3 リサ アリス NULL
    4 アン NULL スミス

    ミドルネームのない子のID、名、および姓を見つけましょう(列middle_nameでNULL) )。これにはISNULL演算子を使用します。

    解決策:

    SELECT id,
      first_name,
      last_name
    FROM children
    WHERE middle_name IS NULL;
    

    結果は次のとおりです。

    id first_name last_name
    2 トム トムソン
    4 アン スミス

    これにより、middle_nameにNULLが含まれるレコードのみが返されます。 、したがって、トムとアンは存在しますが、ミドルネームを持つジョンとリサは存在しません。

    ディスカッション:

    IS NULLを使用します 列にNULLがあるレコードを検索するWHEREの条件の演算子。もちろん、列の名前の代わりに任意の式を使用して、それがNULLを返すかどうかを確認することもできます。列の名前とISNULL演算子だけが必要です(この例では、middle_name IS NULL )。この条件をWHERE句に入れて、行をフィルタリングします(この例では、WHERE middle_name IS NULL )。条件がtrueの場合、列にはNULLが格納され、この行が返されます。上記のクエリでは、ミドルネームを持たないTomとAnneの子を持つ2つのレコードのみが返されるため、列middle_name NULLを格納します。


    1. Sysbenchを使用してMySQLでシャードテーブルのテストデータを生成する

    2. 10MicrosoftAccessナビゲーションペインのキーボードショートカット

    3. 2つのODBCデータソースでのOracle®異種サービスの使用

    4. 初心者向けSQLAVG()