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

MySQLでNULL値のないレコードを選択する方法

    ほとんどのアプリケーションには、 NULL を含む可能性のあるデータベースクエリ結果を除外するために使用できる、何らかの形式のサーバー側またはクライアント側のテクノロジがあります。 または空の値、別の言語を使用し、コードを実行するという追加の負担は、通常、サーバーにとってよりコストがかかり、実際、ほとんど不要です。

    代わりに、以下では、MySQLエンジン自体を使用してこのタスクを実行する方法を簡単に説明し、厄介な NULL のレコードを除外して、必要なレコードのみを取得します。 ミックス内の列。

    ISNOTNULL比較演算子

    特定の列の結果セットにNULLが含まれていないことを確認するための、これまでで最も単純で最も簡単な方法 値はISNOT NULLを使用することです 比較演算子。

    たとえば、 booksのすべてのレコードを選択する場合 primary_authorが存在するテーブル 列ではありません NULL 、クエリは次のようになります:

    SELECT
      primary_author,
      published_date,
      title
    FROM
      books
    WHERE
      primary_author IS NOT NULL;
    

    IS NOT NULLなので 他のコンパレータと同じように動作し、他の WHEREと組み合わせることができます =を使用しているかのように、結果をさらにフィルタリングする句 、>< LIKE およびその他の標準比較演算子。

    複数の列からのNULLのフィルタリング

    場合によっては、いいえの結果を取得したい場合があります。 NULL 値は複数の列にまたがって存在します。たとえば、 booksにいくつかのレコードがあります テーブル:

    id | title                | primary_author  | published_date
    1  | The Hobbit           | Tolkien         | 09-21-1937
    2  | The Silmarillion     | Tolkien         | 09-15-1977
    3  | The Name of the Wind | Rothfuss        | 03-27-2007
    4  | The Wise Man's Fear  | Rothfuss        | 03-01-2011
    5  | The Doors of Stone   | Rothfuss        | NULL
    6  | Beowulf              | NULL            | 01-01-1000
    

    石の扉に注意してください ( id 5 )は公開されていないため、 published_date NULLです 。同様に、 Beowulf id 6 )–有名な古英語の叙事詩–作者は知られていないため、 primary_author NULLです 。

    この場合、最初の4つのみを含む結果をクエリすることができます。 レコード。これにより、 NULLを持つ最後の2つのレコードが除外されます。 いずれかのprimary_authorの値 またはpublished_date 。これは、 ANDを使用したこの単純なステートメントで実行できます。 複数の比較演算子を使用する場合:

    SELECT
      primary_author,
      published_date,
      title
    FROM
      books
    WHERE
      (
        primary_author IS NOT NULL
      AND
        published_date IS NOT NULL
      );
    

    注:括弧は必須ではありませんが、読みやすくするために、グループ化されたコンパレータを囲むことをお勧めします。

    そこにあります。すべてのNULLを除外するために使用できる単純な比較演算子 レコードの値。


    1. TSQLの日付からカレンダー四半期を取得する方法

    2. データベース内のテーブルごとにSQLiteOpenHelperを継承するクラスを作成する必要がありますか?

    3. 特定のテーブルのMySQLエンジンタイプを確認するにはどうすればよいですか?

    4. SQLite JSON_GROUP_OBJECT()