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

推薦する

MySQLに必要な共通知識のまとめ

目次主キー制約一意の主キー非 Null 制約デフォルトの制約外部キー制約1NF 2NF 3NFデータ...

Linux ホスト名設定の詳細な紹介

目次1. Linuxホスト名を設定するクライアントホストを構成するサーバーホストを構成する2. ホス...

ウェブデザインにおける階層化インターフェースの設計経験

多くのネットユーザーは、なぜ自分のウェブサイトはいつも色の問題を抱えていて、いつも地味に見え、注目を...

MySql データベース クエリの特殊コマンド

まずMySQLのインストールMySQLソフトウェアをダウンロードし、インストールパスを変更しますMy...

CSSの2つの特別な値は、カスケードの継承と初期メソッドを制御するために使用されます。

カスケードを制御するために CSS の任意のプロパティに割り当てることができる特別な値が 2 つあり...

HTMLとCSSを使用して、自分だけの暖かい男「Dabai」を作成します

最終結果はこんな感じです、かわいいでしょう… PS: HTML と CSS の知識があればベストです...

ネイティブJSで様々なモーションの複合モーションを実現

この記事では、ネイティブ JS で実装された複合モーションを紹介します。複合モーションとは、異なる属...

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

この記事では、MySQL 8.0.20 winx64 のインストールと設定方法を次のように説明します...

CSS3でカルーセル画像を作成する方法

スライドショーは Web ページでよく見られます。美しい写真が使われています。こちらは純粋な CSS...

MySQL 正規表現 (regexp と rlike) の検索機能の例分析

この記事では、例を使用して MySQL 正規表現 (regexp および rlike) の検索機能を...

スーパーバイザーを使用して nginx + tomcat コンテナを管理する例

必要: docker を使用して nginx + tomcat デュアル プロセスを起動します。実際...

CSS3 における擬似クラスの一般的な使用法の詳細な説明

before/after 疑似クラスは、要素内に 2 つの追加タグを挿入するのと同じです。最も適した...

Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装

目次序文グラフィックドライバーをインストールするCUDAをアンインストールするCUDAをインストール...

MySQLデータベースを定期的に自動バックアップする方法

データは貴重なものであることは誰もが知っています。データをバックアップしなければ、データをそのまま放...

ウェブページ制作と饅頭の関係(体験の共有)

昨日は遅くまで寝ていて、一日中起きていました。私の年齢では、夜更かしして本を書くのはもう無理のようで...