ホームページ > データベース > mysql チュートリアル > MySQL の NULL-Safe Equals Operator () はどのように機能しますか?

MySQL の NULL-Safe Equals Operator () はどのように機能しますか?

Linda Hamilton
リリース: 2025-01-05 16:29:45
オリジナル
891 人が閲覧しました

How Does MySQL's NULL-Safe Equals Operator () Work?

MySQL の Not Equal to NULL 演算子: <=>

SQL クエリを使用する場合、<=> 演算子。その意味と構文について疑問が生じます。このガイドでは、この演算子とそのアプリケーションについて深く理解できます。

Understanding <=>

The <=> 演算子は、NULL 安全な等価演算子 として知られています。これは通常の等号演算子 (=) に似ていますが、NULL 値を扱う場合に重要な違いがあります。

通常の等号演算子と NULL 安全な等号演算子

通常の等号演算子 (=) は、オペランドが等しくない場合は 0 を返し、オペランドが等しい場合は 1 を返します。ただし、NULL 値は特殊なケースとして扱われ、そのような比較では結果として NULL が返されます。

一方、<=> 演算子は、NULL 値を異なる方法で処理します。どちらかまたは両方のオペランドが NULL であるかどうかに関係なく、オペランドが等しくない場合は 0 を返し、等しい場合は 1 を返します。言い換えると、

  • 'a' <=> 'b' は 0

  • 'a' <=> と評価されます。 'a' は 1
  • 'a' <=> と評価されます。 NULL は 0
  • NULL <=> と評価されます。 NULL は 1 に評価されます
  • 演算子は特に便利です比較の両方のオペランドに NULL 値が含まれる可能性があり、2 つのオペランドの間で一貫した比較結果が必要なシナリオで役立ちます。

    この演算子のもう 1 つの実際的な用途は、準備されたステートメントであり、クエリを変更することなく、プレースホルダーがスカラー値と NULL 値の両方をシームレスに処理できます。

    関連演算子

    MySQL は値を比較するための他の演算子も提供しますNULL:
    • IS NULL:
    • オペランドが NULL の場合は 1 と評価され、それ以外の場合は 0 と評価されます。
    • IS NOT NULL:
    • は評価されますオペランドが NULL でない場合は 1、0

    これらの演算子は、MySQL の <=>

    演算子の特殊化と考えることができます。例:
    • 'a' IS NULL'a' <=> と同等です。 NULL
    • 'a' IS NOT NULL は、NOT('a' <=> NULL)

    サポートと互換性

    <=> 演算子は MySQL 固有であり、他のデータベースではサポートされていません。

    SQL:2003 標準では述語 IS [NOT] DISTINCT FROM、MySQL と同じように動作します<=> 演算子。

    さらに、次の複雑ですが広くサポートされている式でも同じ結果を得ることができます:

    CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
         THEN 1
         ELSE 0
    END = 1
    ログイン後にコピー

    以上がMySQL の NULL-Safe Equals Operator () はどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート