webentwicklung-frage-antwort-db.com.de

SQL Select-Anweisung mit WHERE, AND, OR

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.

13
dave

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");
30
codaddict

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');
4
Lance Rushing

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");
1
cherouvim

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");
0
user1350714