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