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

So richten Sie ein Bereitstellungsprojekt unter einem Linux-System ein

1. Ändern Sie die Firewall-Einstellungen und öffn...

So konfigurieren Sie Benutzerrollenberechtigungen in Jenkins

Die Jenkins-Konfiguration von Benutzerrollenberec...

JavaScript-Grundlagenreihe: Funktionen und Methoden

Inhaltsverzeichnis 1. Der Unterschied zwischen Fu...

Erfahren Sie mehr über die Verwendung regulärer Ausdrücke in JavaScript

Inhaltsverzeichnis 1. Was ist ein regulärer Ausdr...

Das Vue-Projekt implementiert einen grafischen Überprüfungscode

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung der MySQL 8.0.18-Befehle

Öffnen Sie den gerade entpackten Ordner C:\web\my...

So ändern Sie die Längenbeschränkung von group_concat in MySQL

In MySQL gibt es eine Funktion namens „group_conc...

Lösung für das MySQL-Anmeldewarnungsproblem

1. Einleitung Wenn wir uns bei MySQL anmelden, wi...

Gängige Reparaturmethoden für die Trennung der MySQL Master-Slave-Replikation

Inhaltsverzeichnis 01 Problembeschreibung 02 Lösu...

So verwenden Sie den Vue-Video-Player für eine Live-Übertragung

Inhaltsverzeichnis 1. Installieren Sie den Vue-Vi...