Написать SQL запрос по условию
Имеется таблица product. Необходимо выбрать запросом товары с фильтром по цене.
SELECT * FROM product WHERE (price) > 210
В скобках запроса я указал price, а нужно в зависимости от попадания в диапазон old_price_from и old_price_to. Т.е. если текущая дата НЕ попала в диапазон(+ диапазон не NULL и old_price не 0.0) то нужно old_price сравнивать, в остальных случаях price.
Возможно ли вообще написать такой запрос средствами MySQL?
Ответы (1 шт):
Да, такой запрос можно написать с помощью MySQL. Можно использовать комбинацию функции IF() и оператора AND, чтобы проверить попадает ли текущая дата в диапазон, указанный old_price_from и old_price_to, а затем использовать соответствующий столбец (price или old_price) в предложении WHERE.
SELECT * FROM product
WHERE
IF(
current_date BETWEEN old_price_from AND old_price_to AND old_price_from IS NOT NULL AND old_price_to IS NOT NULL AND old_price != 0.0,
old_price,
price
) > 210;
