13 Stimmen

SQL Select-Anweisung mit WHERE, AND, OR

Ich würde gerne eine SELECT Abfrage mit MySQL. Mein Ziel ist es, alle Hunde in einer Tierarztdatenbank auszuwählen, die sex=male y fur=short und ( color=black or size=big )

Hinweis: Ich möchte Hunde auswählen, die entweder schwarz sind oder eine große Größe haben. Sie müssen nicht die 2 Anforderungen erfüllen. Sie müssen nur eine davon erfüllen.

Ich habe die folgende SQL-Anweisung geschrieben, bin mir aber nicht sicher, ob ich richtig liege:

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 sie zu verwirrend ist.

32voto

codaddict Punkte 426877

Selon Vorrang der Operatoren für MySQL AND hat einen höheren Vorrang als OR .

Also C1 AND C2 OR C3 wird behandelt als (C1 AND C2) OR C3

Um die Standardpriorität außer Kraft zu setzen, müssen Sie die Klammern wie folgt verwenden: C1 AND (C2 OR C3)

In Ihrem Fall ist die richtige Frage:

SELECT name, sex, fur, color 
FROM dogs 
WHERE sex='male' AND fur='short' AND (color='black' OR size="big");

4voto

Lance Rushing Punkte 7340

Achten Sie darauf, Klammern hinzuzufügen, damit die OR-Bedingung korrekt ausgewertet wird.

SELECT name, sex, fur, color 
FROM dogs 
WHERE sex='male' AND fur='short' AND (color='black' OR size='big');

1voto

cherouvim Punkte 31201

Die Art und Weise, wie Sie die 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");

0voto

user1350714 Punkte 1

Ich habe dies verwendet und es funktioniert;

SELECT name, sex, fur, color 
FROM dogs 
WHERE sex="male" AND fur="short" AND (color="black" || size="big");

0voto

Shiwangini Punkte 802

Select name, sex, fur,color from dogs where sex ='male' and fur ='short' and (color ='black' or size ='big');

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X