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

mysqlでnull<>null=nullなのはなぜですか

    NULLに対する比較演算子があるため SQLフィルターに表示されると、行が選択されなくなります(実際に表示されます)。

    null安全演算子<=>を使用する必要があります NULLを含む列と比較します 値およびその他のNOT NULL 値ですが<=> 1を返します 両方のオペランドがNULLの場合 NULL NULLと等しいとは見なされません 。

    これは、nullセーフ演算子が役立つ状況の例です:

    テーブルがあります:

    Phones
    ----
    Number
    CountryCode (can be NULL) 
    

    また、スペイン以外のすべての電話番号(国番号34)を選択する必要があります。通常、最初の試行は次のとおりです。

    SELECT Number FROM Phones WHERE CountryCode <> 34;
    

    ただし、国コード(NULL値)がリストされていない電話があり、スペイン製でもないため、結果に含める必要があることに気付きました。

    SELECT Number FROM Phones WHERE CountryCode <=> 34;
    


    1. MariaDBでのREGEXP_REPLACE()のしくみ

    2. SQL Developerを使用してOracleでスキーマを作成するにはどうすればよいですか?

    3. MySQLは2つのテーブルからJOINを使用してランダムな行を選択します

    4. パターンマッチング:私が子供の頃はもっと楽しかった