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

React Native realisiert den Auf- und Ab-Pull-Effekt der Überwachungsgeste

React Native implementiert die Überwachungsgeste ...

Installation und Verwendung von TypeScript und grundlegende Datentypen

Der erste Schritt besteht darin, TypeScript globa...

So geben Sie Speicherplatz unter CentOS 6 oder CentOS 7 frei

Nachfolgend finden Sie die Schnellbefehle zum Fre...

WeChat Mini-Programm Lotterienummerngenerator

In diesem Artikel wird der spezifische Code des W...

6 Möglichkeiten, die von Linux-Prozessen belegten Portnummern anzuzeigen

Für Linux-Systemadministratoren ist es von entsch...

So verwenden Sie eine VLAN-getaggte Ethernet-Karte im CentOS/RHEL-System

In einigen Szenarien möchten wir derselben Ethern...

Linux-Datei-/Verzeichnisberechtigungen und Eigentümerverwaltung

1. Übersicht über Dateiberechtigungen und Eigentu...

MySQL-Variablendeklaration und Analyse gespeicherter Prozeduren

Deklarieren von Variablen Festlegen globaler Vari...

JS implementiert das Schlangenspiel

Inhaltsverzeichnis 1. Initialisierungsstruktur 2....

Zusammenfassung des Wissens zu MySQL-Sperren

Sperren in MySQL Sperren sind ein Mittel, um Ress...

Was bedeutet href=# in einem Link?

Links zur aktuellen Seite. ------------------- Übl...

Verwendung des MySQL-Stresstesttools Mysqlslap

1. MySQLs eigenes Stresstest-Tool Mysqlslap mysql...

Vue + Spring Boot realisiert die Bestätigungscodefunktion

In diesem Artikelbeispiel wird der spezifische Co...