MySQL の Not Equal to NULL 演算子: <=>
SQL クエリを使用する場合、<=> 演算子。その意味と構文について疑問が生じます。このガイドでは、この演算子とそのアプリケーションについて深く理解できます。
Understanding <=>
The <=> 演算子は、NULL 安全な等価演算子 として知られています。これは通常の等号演算子 (=) に似ていますが、NULL 値を扱う場合に重要な違いがあります。
通常の等号演算子と NULL 安全な等号演算子
通常の等号演算子 (=) は、オペランドが等しくない場合は 0 を返し、オペランドが等しい場合は 1 を返します。ただし、NULL 値は特殊なケースとして扱われ、そのような比較では結果として NULL が返されます。
一方、<=> 演算子は、NULL 値を異なる方法で処理します。どちらかまたは両方のオペランドが NULL であるかどうかに関係なく、オペランドが等しくない場合は 0 を返し、等しい場合は 1 を返します。言い換えると、
演算子は特に便利です比較の両方のオペランドに NULL 値が含まれる可能性があり、2 つのオペランドの間で一貫した比較結果が必要なシナリオで役立ちます。 この演算子のもう 1 つの実際的な用途は、準備されたステートメントであり、クエリを変更することなく、プレースホルダーがスカラー値と NULL 値の両方をシームレスに処理できます。
関連演算子
MySQL は値を比較するための他の演算子も提供しますNULL:これらの演算子は、MySQL の <=>
演算子の特殊化と考えることができます。例:サポートと互換性
<=> 演算子は 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 サイトの他の関連記事を参照してください。