Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie genau unterscheidet sich die Verwendung von OR in einer MySQL-Anweisung mit/ohne Klammern?

Dies liegt daran, dass OR eine niedrigere Operatorpriorität als UND. Immer wenn die DB einen Ausdruck wie

sieht
A AND B OR C

das AND wird zuerst ausgewertet, d.h. es ist äquivalent zu

(A AND B) OR C

Also, wenn Sie es ausdrücklich wollen

A AND (B OR C)

Stattdessen müssen Sie die Klammern einfügen.

Dies ist übrigens nicht spezifisch für SQL. Die Rangfolge dieser Operatoren ist in allen mir bekannten Programmiersprachen gleich (d. h. zumindest C, C++, C#, Java und Unix-Shell-Skripte).