Ich möchte eine SELECT
-Abfrage mit MySQL durchführen. Mein Ziel ist es, alle Hunde in einer Tierarztdatenbank auszuwählen, die sex=male
und fur=short
und (color=black or size=big
) wären.
Hinweis: Ich möchte Hunde auswählen, die entweder schwarz sind oder die Größe groß ist. Sie müssen die 2 Anforderungen nicht erfüllen. Sie müssen nur eine davon erfüllen.
Ich habe die SQL-Anweisung unten geschrieben, aber ich bin nicht sicher, ob ich Recht habe:
SELECT name, sex, fur, color
FROM dogs
WHERE TRUE sex='male' AND fur='short' AND color='black' OR size="big";
Verzeihen Sie meine Formulierung, wenn es zu verwirrend ist.
Gemäß Operator-Priorität für MySQLAND
hat höhere Priorität als OR
.
C1 AND C2 OR C3
wird also als (C1 AND C2) OR C3
behandelt.
Um die Standardpriorität zu überschreiben, müssen Sie folgende Klammern verwenden: C1 AND (C2 OR C3)
In Ihrem Fall lautet die richtige Frage:
SELECT name, sex, fur, color
FROM dogs
WHERE sex='male' AND fur='short' AND (color='black' OR size="big");
Stellen Sie sicher, dass Sie Klammern hinzufügen, damit die Bedingung OR richtig ausgewertet wird.
SELECT name, sex, fur, color
FROM dogs
WHERE sex='male' AND fur='short' AND (color='black' OR size='big');
Die Art und Weise, wie Sie Klammern in der Beschreibung Ihres Ziels verwenden, ist korrekt. Die Syntax lautet:
SELECT name, sex, fur, color
FROM dogs
WHERE sex="male" AND fur="short" AND (color="black" OR size="big");
wähle den Namen, das Geschlecht, das Fell und die Farbe von Hunden aus, bei denen Geschlecht = "männlich" und Fell = "kurz" und (Farbe = "schwarz" oder Größe = "groß");
Ich habe dies und seine Arbeitsweise genutzt;
SELECT name, sex, fur, color
FROM dogs
WHERE sex="male" AND fur="short" AND (color="black" || size="big");