Можете ли вы настроить SQL запрос (результат) на основе условий в таблице? - PullRequest
1 голос
/ 23 марта 2020

Я ищу (под) запрос и / или оператор If в запросе MYSQL. После Google и поиска, я THINK это должно быть возможно с оператором CASE, но я не уверен. Мои вопросы:

1: это вообще возможно? 2: Если это так: может ли кто-нибудь указать мне правильное направление для достижения этой цели?

ВЫПУСК: У меня есть стол с продуктами. Каждый ПРОДУКТ может иметь -in_stock значение 0 или 1 (в наличии нет или да). -status с возможным значением NULL или DELETED. Продукт, имеющий статус «УДАЛЕНО», НЕ МОЖЕТ быть заказан, UNLESS in есть в наличии.

ВОПРОС Можно ли применить (какой-то) оператор IF в запросе SQL? Что-то вроде:

SELECT
    *
FROM
    products
WHERE
  CASE in_stock = 0
    THEN (AND status != 'DELETED')
    ELSE ()

Я надеюсь, что кто-нибудь может мне помочь. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Вы можете использовать AND и OR в предложении WHERE. Следующий запрос дает вам все товары, которые есть в наличии или не были удалены (или оба):

SELECT *
FROM products
WHERE in_stock = 1 OR status <> 'DELETED';

Другой способ написать то же самое:

SELECT *
FROM products
WHERE NOT (in_stock = 0 AND status = 'DELETED');

Вы можете иметь множество условий, которые вы комбинируете с AND, OR и круглыми скобками.

0 голосов
/ 23 марта 2020

Рассмотрим:

SELECT *
FROM products
WHERE
    (in_stock = 0 AND status <> 'DELETED') OR
    in_stock > 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...