Как не применять условие в SQL если оно не пришло?

104
24 ноября 2020, 07:10

Нужно вывести список товаров, применив фильтры.

SELECT `goods`.`id`
    , `goods`.`name`
    , `ratingGoods`.`assessment`
    , `goods`.`description`
    , `remnats`.`sale_price` 
FROM `remnats` 
    LEFT JOIN `goods` ON `goods`.`id` = `remnats`.`id_tovar` 
    LEFT JOIN `ratingGoods` ON `ratingGoods`.`goodsId` = `goods`.`id` 
    LEFT JOIN `accounting` ON `accounting`.`goods_id` = `remnats`.`id_tovar`
    LEFT JOIN `sales` ON `sales`.`accouting_id` = `accounting`.`id` 
WHERE (`goods`.`category_id` = '.$_POST['category'].') 
GROUP BY `goods`.`id` 
ORDER BY SUM(`sales`.`number`) 
DESC LIMIT '.$_POST['limit'].';

Как вставить все условия, но так чтобы когда переменная пуста, то sql пропускал это условие и выводились все значения этого поля? Или всё таки придётся делать большое количество вариантов запросов?

READ ALSO
Отправить сообщение в Whatsapp

Отправить сообщение в Whatsapp

Есть ли API, чтобы с помощью PHP отправить сообщение в WhatsApp?

124
Веб сервер для веб разработки

Веб сервер для веб разработки

Поставил себе ubintu, в первый раз работаю с линуксом в графической оболочкеПодскажите пожалуйста, есть ли какие-то строенные локальные серверы...

130
Fragment накладывается на preference fragment

Fragment накладывается на preference fragment

В navigation drawer создаю два фрагмента обычный и с настройками, при переходе из фрагмента настроек на другой он накладывается

96
long n = 922337203685477580; – почему ошибка?

long n = 922337203685477580; – почему ошибка?

Ошибка: integer number too largeНо при чём здесь integer если я указываю тип long?

130