Lösen Sie das Problem der Kombination von AND und OR in MySQL

Lösen Sie das Problem der Kombination von AND und OR in MySQL

Wie unten dargestellt:

Wählen Sie Produktname, Produktpreis aus den Produkten aus, wobei Vend_id = 1002 oder Vend_id = 1003 und Prod_Preis >= 10 ist.

Das von der obigen Anweisung zurückgegebene Ergebnis ist nicht das gewünschte.

analysieren:

Der Grund liegt in der Berechnungsreihenfolge. SQL priorisiert UND-Operatoren vor ODER-Operatoren. Wenn SQL die obige WHERE-Klausel sieht, werden die Operatoren falsch kombiniert, da AND in der Berechnungsreihenfolge eine höhere Priorität hat.

Die Lösung dieses Problems besteht darin, entsprechende Operatoren mithilfe von Klammern explizit zu gruppieren.

Bitte beachten Sie die folgende SELECT-Anweisung

 SELECT Produktname, Produktpreis
    FROM Produkte

    Wobei (Vend_ID = 1002 ODER Vend_ID = 1003) und Produktpreis >= 10;

Zusatzwissen: Mysql | Kombinierte Where-Klausel zum Filtern von Daten (AND, OR, IN, NOT)

MySQL erlaubt die Verwendung mehrerer Where-Klauseln und die Kombination von Where-Klauseln ermöglicht die Verwendung von zwei Methoden: AND- und OR-Klauseln.

Operationssymbole in der Datenbank: AND, OR, IN, NOT.

UND :

Wählen Sie * aus Produkten, wobei Produkte.vend_id = 1003 und Produkte.prod_price <= 10 sind.

ODER :

Wählen Sie * aus Produkten, wobei Produkte.vend_id = 1002 oder Produkte.vend_id = 1003 sind.

IN :

Es wird empfohlen, OR nicht in Klauseln zu verwenden, in denen IN verwendet werden kann. IN hat eine gute Leistung und ist leicht zu verstehen.

Wählen Sie * aus Produkten, wobei Produkte.vend_id in (1002,1003) sind.

NICHT:

MySQL unterstützt NOT nur in der Negation von IN-, BETWEEN- und EXISTS-Klauseln, was sich von den meisten anderen Datenbanken unterscheidet, die verschiedene Bedingungen unterstützen.

Wählen Sie * aus Produkten, wobei Produkte.vend_id nicht in (1002,1003) sind.

Beachten:

In einer Klausel, die sowohl AND als auch OR enthält, priorisiert MySQL AND-Operationen. Es wird im Allgemeinen empfohlen, () zu verwenden, um die Verarbeitungsreihenfolge zu bestimmen und Mehrdeutigkeiten zu vermeiden.

Zum Beispiel:

Wählen Sie * aus Produkten, wobei (products.vend_id = 1002 oder products.vend_id = 1003) und prod_price > = 10;

Der obige Artikel zur Lösung der Probleme, die durch die Kombination von AND und OR in MySQL verursacht werden, ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • MySQL bedingte Abfrage und/oder Verwendung und Priorität Beispielanalyse
  • Prioritätsanalyse von und/oder Abfragen in MySQL

<<:  So verwenden Sie die Vue-Cache-Funktion

>>:  Implementierung des Deployment-War-Package-Projekts mit Docker

Artikel empfehlen

JavaScript zum Erzielen eines Lupeneffekts

In diesem Artikel wird der spezifische Code für J...

Wissen zur Suchmaschinenoptimierung, auf das Sie beim Webdesign achten sollten

1. Linklayout der neuen Site-Startseite 1. Die Pos...

Front-End-JavaScript-Funktionsprinzip

Inhaltsverzeichnis 1. Was ist eine JavaScript-Eng...

Beispiel zum Entfernen eines JSON-Backslashs in PHP

1. Entfernen Sie Backslashes mit der Methode „str...

CSS-Position feste linke und rechte Doppelpositionierungs-Implementierungscode

CSS-Position Das Positionsattribut gibt den Posit...

So installieren und verwenden Sie Cockpit unter CentOS 8/RHEL 8

Cockpit ist ein webbasiertes Serververwaltungstoo...

Beispiel einer Vorrendering-Methode für eine Vue-Einzelseitenanwendung

Inhaltsverzeichnis Vorwort vue-cli 2.0 Version vu...

Vue implementiert WebSocket-Kundendienst-Chatfunktion

In diesem Artikel wird hauptsächlich die Implemen...

Implementierung des Wasserfall-Layouts im Uni-App-Projekt

GitHub-Adresse, Sie können es mit einem Stern mar...

So stellen Sie Dienste in Windows Server 2016 bereit (Grafisches Tutorial)

Einführung Wenn eine große Anzahl an Systemen ins...

Detaillierte Erläuterung der bidirektionalen Bindung von Vue

Inhaltsverzeichnis 1. Zwei-Wege-Bindung 2. Wird d...