MySQLでANDとORを組み合わせる問題を解決する

MySQLでANDとORを組み合わせる問題を解決する

以下のように表示されます。

SELECT prod_name,prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >= 10;

上記のステートメントによって返される結果は、私たちが望むものではありません。

分析:

その理由は計算の順序にあります。 SQL では、OR 演算子よりも AND 演算子が優先されます。 SQL が上記の WHERE 句を見ると、計算順序では AND の優先順位が高いため、演算子が誤って結合されます。

この問題の解決策は、括弧を使用して対応する演算子を明示的にグループ化することです。

次のSELECT文を参照してください

 製品名、製品価格を選択
    製品から

    ここで ( vend_id = 1002 または vend_id = 1003 ) かつ prod_price >= 10;

補足知識: Mysql | データをフィルタリングするための組み合わせた where 句 (AND、OR、IN、NOT)

MySQL では複数の where 句の使用が許可されており、where 句の組み合わせにより AND 句と OR 句の 2 つの方法を使用できます。

データベース内の演算記号: AND、OR、IN、NOT。

そして

SELECT * FROM products WHERE products.vend_id = 1003 AND products.prod_price <= 10;

または

SELECT * FROM products WHERE products.vend_id = 1002 OR products.vend_id = 1003;

IN を使用できる句では OR を使用しないことをお勧めします。IN はパフォーマンスが良く、理解しやすいです。

SELECT * FROM products WHERE products.vend_id IN (1002,1003);

ない:

MySQL は、IN、BETWEEN、および EXISTS 句の否定でのみ NOT をサポートしています。これは、さまざまな条件をサポートする他のほとんどのデータベースとは異なります。

SELECT * FROM products WHERE products.vend_id NOT IN (1002,1003);

知らせ:

AND と OR の両方を含む句では、MySQL は AND 演算を優先します。一般的には、処理順序を決定し、あいまいさを排除するために () を使用することをお勧めします。

例えば:

SELECT * FROM products WHERE (products.vend_id= 1002 OR products.vend_id=1003) AND prod_price >= 10;

MySQL で AND と OR の組み合わせによって発生する問題を解決する方法に関する上記の記事は、編集者が皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL 条件付きクエリと使用法および優先順位の例の分析
  • MySQL での and or クエリの優先度分析

<<:  Vueキャッシュ機能の使い方

>>:  JavaScript のよりエレガントなエラー処理方法 async await

推薦する

シンプルなデータ応答システムを実装する

目次1. デップ2. 観察者を理解する3. 監視と観察者を理解する4. トリガーの依存性5. プロセ...

CSS3で線形グラデーションを実装するためのコードの詳細な説明

序文デモでは古いバージョンのブラウザのグラデーションが実装されています[IE9-]。 IE9 より前...

MySQL 5.7.17 winx64 のインストールと設定方法のグラフィックチュートリアル

Windows インストール mysql-5.7.17-winx64.zip メソッド レコード &...

Linux自動ログイン例の説明

インターネット上には、expect を使用して自動ログインを実現するスクリプトが多数存在しますが、明...

MySQL 8.0.23 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

この記事では、MySQL 8.0.23のインストールと設定方法を参考までに紹介します。具体的な内容は...

FirefoxでCookieとお気に入りをインポートおよびエクスポートする方法

Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...

React における同期および非同期 setState の問題のコード分析

React は Facebook の社内プロジェクトとして始まりました。 React の出現は革命的...

CSSラベル表示モードについて1つの記事で学ぶ

タグの種類(表示モード) HTML タグは、一般的にブロック タグとインライン タグの 2 種類に分...

JavaScriptの詳細な説明 thisキーワード

目次1. はじめに2.これを理解する3. これは誰ですか? 4.矢印関数はさらに読む要約する1. は...

CSS3でシャトル星空のアニメーションを実現

結果: html <canvas id="スターフィールド"><...

JDKネイティブスレッドプールのバグを修正するTomcatの実装原理

処理能力と同時実行性を向上させるために、Web コンテナは通常、リクエストを処理するタスクをスレッド...

Divの境界と透明度に関する設定

フレーム:スタイル=”border-style:solid;border-width:5px;bor...

MySQL分離の使用手順を読む

現在のトランザクションはどの履歴バージョンを読み取ることができますか?読み取りビューは、トランザクシ...

HTML テーブルの行間隔を変更する方法の例

HTML テーブルを使用する場合、行間隔を変更する必要がある場合がありますが、余白、パディング、折り...

Windows 10 での MySQL 5.7.21 インストーラのインストール グラフィック チュートリアル

MySQLをインストールしてメモしておきます。うまくインストールできるか分かりませんが、試してみます...