SQL Select Statement с WHERE, AND, OR

Я хотел бы выполнить запрос SELECT с MySQL. Моя цель состоит в том, чтобы выбрать всех собак в базе данных ветеринара, которая была бы сексом = мужчина и мех = короткий и (цвет = черный или размер = большой)

Примечание. Я хочу выбрать собак, которые являются либо черными, либо большими. Они не должны выполнять 2 требования. Им просто нужно выполнить любой из них.

Я написал инструкцию SQL ниже, но я не уверен, прав ли я:

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

Простите мою формулировку, если она слишком запутанна.

Ответ 1

Согласно Приоритет оператора для MySQL AND имеет более высокий приоритет, чем OR.

Итак, C1 AND C2 OR C3 будет рассматриваться как (C1 AND C2) OR C3

Чтобы переопределить приоритет по умолчанию, вам нужно использовать скобки как: C1 AND (C2 OR C3)

В вашем случае правильный запрос:

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

Ответ 2

Обязательно добавьте круглые скобки, поэтому условие OR будет оценено правильно.

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

Ответ 3

То, как вы используете круглые скобки в описании своей цели, является правильным. Синтаксис:

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

Ответ 4

Я использовал это и его работу;

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