MySql Prioritäten setzen?
Franz. Z.
- datenbank
0 Sven Rautenberg0 Franz. Z.
0 Ilja
Hallo,
kann ich in einer Query Klammern setzen oder gibt es eine sonstige Regel für Prioritätensetzung zwischen AND und OR??
Bsp:
SELECT * FROM table
WHERE
Bedingung 1 AND
Bedingung 2 OR
Bedingung 3
Was hat hier Vorrang?
B1 AND (B2 OR B3) oder
(B1 AND B2) OR B3
Grüße, Franz
Moin!
kann ich in einer Query Klammern setzen oder gibt es eine sonstige Regel für Prioritätensetzung zwischen AND und OR??
Hast du dazu das Handbuch schon mal konsultiert?
- Sven Rautenberg
Moin!
»» kann ich in einer Query Klammern setzen oder gibt es eine sonstige Regel für Prioritätensetzung zwischen AND und OR??
Hast du dazu das Handbuch schon mal konsultiert?
- Sven Rautenberg
Nein.
Denn darin finde ich mich nicht zurecht.
Moin!
»» »» kann ich in einer Query Klammern setzen oder gibt es eine sonstige Regel für Prioritätensetzung zwischen AND und OR??
»»
»» Hast du dazu das Handbuch schon mal konsultiert?Nein.
Denn darin finde ich mich nicht zurecht.
Den Umgang mit dem Handbuch kann man ja lernen.
Fangen wir an: Das MySQL-Handbuch findet man nach googlen von "mysql handbuch" als Top-1-Link unter http://dev.mysql.com/doc/refman/5.1/de/index.html - sogar deutsch. Klick!
Du hast eine Frage zur SQL-Syntax: Kapitel 13. SQL-Anweisungssyntax. Klick!
Es geht um SELECT: 13.2. Datenmanipulation: SELECT, INSERT, UPDATE, DELETE. Klick!
Es geht um SELECT: 13.2.7. SELECT. Klick!
Zu sehen ist die Syntax-Struktur des SELECT. Da findet sich auch ein Abschnitt "WHERE where_condition", und darunter ein Block mit Erklärungen zu einzelnen Stichworten. Zu WHERE steht dort: "Sie können in der WHERE-Klausel alle von MySQL unterstützten Funktionen und Operatoren mit Ausnahme der Zusammenfassungsfunktionen einsetzen. Siehe auch Kapitel 12, Funktionen für die Benutzung in SELECT- und WHERE-Klauseln." Klingt gut, also: Klick!
Mit Hintergrundwissen kann man erkennen, dass es sich bei AND und OR um Operatoren handelt: Klick!
Und die Frage war, welche Reihenfolge gilt, wenn unterschiedliche Operatoren aufeinandertreffen: 12.1.1. Rangfolge von Operatoren. Klick!
Und schon ist da eine Liste mit der Rangfolge sowie einem Beispiel für Klammerung, wenn einem die Reihenfolge nicht passt.
- Sven Rautenberg
Hallo Franz,
klar ist man verdutzt, wenn einem das Handbuch so um die Ohren gehauen wird. Aber Inhaltlich hat Sven einfach recht!!! Auch wenn schwer fällt - vieleicht sagst du mal danke!
Ich wäre jedenfalls ganz froh, wenn Sven mir bei meiner Frage ("Einfaches Debug" - etwas weiter unten) das Handbuch um die Ohren hauen würde (ich habe vor meiner Fragestellung schon drin gescuht).
SQL-Neuling
klar ist man verdutzt, wenn einem das Handbuch so um die Ohren gehauen wird. Aber Inhaltlich hat Sven einfach recht!!! Auch wenn schwer fällt - vieleicht sagst du mal danke!
Nein, fällt gar nicht schwer. Hab ich auch schon gemacht. Und zwar, bevor ich Dein Post gelesen habe ;-)
Aber nicht für den Handbuch-Tip ansich, sondern für das wirklich mühevolle und lehrreiche Post danach. Umso leichter fiel es, danke zu sagen :-)
Grüße, Franz
- Sven Rautenberg
Hallo Sven,
mir tut das jetzt schon fast leid, dass Du es so ausführlich beschrieben hast und Dir viel Arbeit gemacht hast.
Vielen Dank dafür.
Fakt ist:
Nach meinem Post hab ich mir doch mal die Mühe gemacht und bin ins ungeliebte Handbuch vorgedrungen und weißt' was?
Ich habe intuitiv haargenau den Weg genommen, den Du hier beschrieben hast!
Dennoch, irgendwann liest es ein anderer Newbie und ist froh drum :-)
Aber: Den Tip mit den Klammern von Ilja hätt ich ohne das Post nie gehabt... also hat sichs doch noch gelohnt.
Grüße, Franz
yo,
kann ich in einer Query Klammern setzen oder gibt es eine sonstige Regel für Prioritätensetzung zwischen AND und OR??
so wie immer, AND bindet stärker als OR und Klammern binden noch stärker. als in deinem falle wird erst die AND verbindung ausgewertet und dann das eine OR.
Ilja
yo,
»» kann ich in einer Query Klammern setzen oder gibt es eine sonstige Regel für Prioritätensetzung zwischen AND und OR??
so wie immer, AND bindet stärker als OR und Klammern binden noch stärker. als in deinem falle wird erst die AND verbindung ausgewertet und dann das eine OR.
Ilja
Hallo Ilja,
erstmal vielen Dank für die Antwort!
Nachfrage: Also könnte ich per Klammersetzung auch eine OR-Verbindung stärker machen?
Gruß, Franz
yo,
Nachfrage: Also könnte ich per Klammersetzung auch eine OR-Verbindung stärker machen?
ganz genau, wobei es weniger dir OR verbindung wäre, sondern eben die klammern.
Ilja
ganz genau, wobei es weniger dir OR verbindung wäre, sondern eben die klammern.
Ilja
Danke @ Ilja :-)
Gruß, Franz