SQL 論理演算子の優先順位: AND と OR の階層を理解する
SQL では、論理演算子「AND」と「OR」は、指定された条件に基づいてデータをフィルタリングする条件式を構築するための構成要素です。ただし、これらの式の結果を決定する際には、それらの優先順位、つまり評価される順序が重要です。
質問:
次の 2 つの SQL ステートメントについて考えてみましょう:
SELECT [...] FROM [...] WHERE some_col in (1,2,3,4,5) AND some_other_expr
SELECT [...] FROM [...] WHERE some_col in (1,2,3) or some_col in (4,5) AND some_other_expr
これらのステートメントは同等ですか?それらの等価性を検証するのに役立つ真理値表のようなツールはありますか?
答え:
いいえ、これら 2 つのステートメント は同等ではありません 。 「AND」は「OR」よりも優先されます。つまり、式 some_col in (1,2,3,4,5) AND some_other_expr
が最初に評価され、次にその評価結果が OR 演算子に適用されます。
これを説明するために、次の例を考えてみましょう:
Declare @x tinyInt = 1 Declare @y tinyInt = 0 Declare @z tinyInt = 0 Select Case When @x=1 OR @y=1 And @z=1 Then 'T' Else 'F' End -- 输出 T Select Case When (@x=1 OR @y=1) And @z=1 Then 'T' Else 'F' End -- 输出 F
最初のステートメントは @x=1 OR @y=1 And @z=1
を評価し、式 @y=1 And @z=1
が「False」を返すため、結果は「T」になります。次に、「OR」演算子がこの結果を「@x=1」(「True」)と結合し、最終的に「T」を出力します。
ただし、2 番目のステートメントは (@x=1 OR @y=1) And @z=1
を異なる方法で評価します。 「OR」演算子はまず、両方とも「True」である「@x=1」と「@y=1」を結合し、結果は「True」になります。この「True」の結果は「@z=1」(「False」) に対して評価され、最終的な出力は「F」になります。
したがって、評価の順序は重要であり、括弧を使用して優先順位ルールをオーバーライドできます。これら 2 つのステートメントを等価にするには、次のように括弧を追加します。
SELECT [...] FROM [...] WHERE (some_col in (1,2,3) or some_col in (4,5)) AND some_other_expr
SQL における論理演算子の優先順位に関するさらなる参考資料をお探しの場合は、次のリソースをお勧めします。
- Microsoft Transact-SQL 演算子の優先順位
- Oracle MySQL 9 演算子の優先順位
- Oracle 10g 条件の優先順位
- PostgreSQL 演算子の優先順位
- SQLite によって理解される SQL
以上がSQL AND/OR 演算子の優先順位: これらの SQL ステートメントは同等ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、MySQLの「共有ライブラリを開くことができない」エラーについて説明します。 この問題は、必要な共有ライブラリ(.so/.dllファイル)を見つけることができないMySQLの障害に起因しています。ソリューションには、システムのパッケージMを介してライブラリのインストールを確認することが含まれます。

この記事では、DockerのMySQLメモリ使用量を最適化することを調査します。 監視手法(Docker統計、パフォーマンススキーマ、外部ツール)および構成戦略について説明します。 これらには、Dockerメモリの制限、スワッピング、およびcgroupsが含まれます

この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

この記事では、PHPMyAdminの有無にかかわらず、LinuxにMySQLを直接インストールするのとPodmanコンテナを使用します。 それは、各方法のインストール手順を詳述し、孤立、携帯性、再現性におけるポッドマンの利点を強調しますが、

この記事では、自己完結型のサーバーレスリレーショナルデータベースであるSQLiteの包括的な概要を説明します。 SQLiteの利点(シンプルさ、移植性、使いやすさ)と短所(同時性の制限、スケーラビリティの課題)を詳しく説明しています。 c

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

このガイドは、HomeBrewを使用してMacOSに複数のMySQLバージョンをインストールおよび管理することを示しています。 Homebrewを使用して設置を分離し、紛争を防ぐことを強調しています。 この記事では、インストール、開始/停止サービス、および最高のPRAを詳述しています

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい

ホットトピック









