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

MySQL ISNULL()の説明

    MySQLでは、ISNULL() 関数を使用すると、値がnullであるかどうかを確認できます か否か。 nullの場合 、次に1 が返されます。それ以外の場合は0 返されます。

    構文

    ISNULL(expr)

    簡単な例を次に示します。

    SELECT ISNULL( null );

    結果:

    1

    この場合、式はnullです。 したがって、出力は1です。 。

    ここでは、null以外のものを使用しています 値:

    SELECT ISNULL( 'Cake' );

    結果:

    0

    今回の結果は0です。 (式がnullではないため 。

    表現

    ISNULL() 式の結果をチェックします。たとえば、次のようにすると、次のようになります。

    SELECT ISNULL( 3 / 0 );

    これを取得します:

    1

    したがって、nullを指定しませんでしたが 引数として、式の結果はnullです。 、などISNULL() 1を返します 。

    これは、次の例でより明確に示すことができます:

    SELECT 
        3 / 0,
        ISNULL( 3 / 0 );

    結果:

    +-------+-----------------+
    | 3 / 0 | ISNULL( 3 / 0 ) |
    +-------+-----------------+
    |  NULL |               1 |
    +-------+-----------------+
    1 row in set, 2 warnings (0.00 sec)

    最初の列では、計算自体がnull値になっていることがわかります。したがって、2番目の列は1を返しました。 。

    その間、警告は次のとおりです。

    SHOW WARNINGS

    結果:

    +---------+------+---------------+
    | Level   | Code | Message       |
    +---------+------+---------------+
    | Warning | 1365 | Division by 0 |
    | Warning | 1365 | Division by 0 |
    +---------+------+---------------+

    ゼロで除算しようとしたため、警告が表示されます(結果としてnull値になります)。

    データベースの例

    次のようなデータベーステーブルがあるとします。

    SELECT * FROM Pets;

    結果:

    +-------+-----------+---------+---------+------------+
    | PetId | PetTypeId | OwnerId | PetName | DOB        |
    +-------+-----------+---------+---------+------------+
    |     1 |         2 |       3 | Fluffy  | 2020-11-20 |
    |     2 |         3 |       3 | Fetch   | 2019-08-16 |
    |     3 |         2 |       2 | Scratch | 2018-10-01 |
    |     4 |         3 |       3 | Wag     | 2020-03-15 |
    |     5 |         1 |       1 | Tweet   | 2020-11-28 |
    |     6 |         3 |       4 | Fluffy  | 2020-09-17 |
    |     7 |         3 |       2 | Bark    | NULL       |
    |     8 |         2 |       4 | Meow    | NULL       |
    |     9 |         3 |       1 | Woof    | 2020-10-03 |
    |    10 |         4 |       5 | Ears    | 2022-01-11 |
    +-------+-----------+---------+---------+------------+

    ISNULL()を使用するクエリは次のとおりです そのテーブルに対する機能:

    SELECT
        PetId,
        PetName,
        ISNULL( DOB ) AS "DOB is Missing?"
    FROM Pets;

    結果:

    +-------+---------+-----------------+
    | PetId | PetName | DOB is Missing? |
    +-------+---------+-----------------+
    |     1 | Fluffy  |               0 |
    |     2 | Fetch   |               0 |
    |     3 | Scratch |               0 |
    |     4 | Wag     |               0 |
    |     5 | Tweet   |               0 |
    |     6 | Fluffy  |               0 |
    |     7 | Bark    |               1 |
    |     8 | Meow    |               1 |
    |     9 | Woof    |               0 |
    |    10 | Ears    |               0 |
    +-------+---------+-----------------+

    その場合、1を表示する列を作成しました DOB列に何も表示されていないすべてのペット用。

    生年月日が記載されていないすべてのペット(つまり、DOB)を返却したいとします。 フィールドはnull )。この場合、次のことができます。

    SELECT * FROM Pets
    WHERE ISNULL(DOB) = 1;

    結果:

    +-------+-----------+---------+---------+------+
    | PetId | PetTypeId | OwnerId | PetName | DOB  |
    +-------+-----------+---------+---------+------+
    |     7 |         3 |       2 | Bark    | NULL |
    |     8 |         2 |       4 | Meow    | NULL |
    +-------+-----------+---------+---------+------+

    これにより、次の手順を実行した場合と同じ結果が得られます。

    SELECT * FROM Pets
    WHERE DOB IS NULL;

    結果:

    +-------+-----------+---------+---------+------+
    | PetId | PetTypeId | OwnerId | PetName | DOB  |
    +-------+-----------+---------+---------+------+
    |     7 |         3 |       2 | Bark    | NULL |
    |     8 |         2 |       4 | Meow    | NULL |
    +-------+-----------+---------+---------+------+


    1. PHPとMySQL:mysqli_num_rows()は、パラメーター1がmysqli_resultであると想定しており、ブール値が指定されています

    2. SQL左結合

    3. SQL Serverトランザクションログ—パート2

    4. SQL Server一括挿入–パート1