У меня несколько сложный запрос mySQL, который я пытаюсь выполнить.У меня есть два параметра: средство и isEnabled.Объект может иметь значение «ВСЕ» или быть конкретным идентификатором.isEnabled может иметь значение «ALL» или быть 0/1.
Моя проблема в том, что мне нужно придумать логику, которая может обрабатывать следующие сценарии: 1) Facility = ALL AND isEnabled = ALL 2) Facility= ALL AND isEnabled = значение 3) Средство = someID AND isEnabled = ALL 4) Средство = someID AND isEnabled = значение
Проблема в том, что у меня есть несколько вложенных операторов IF:
IF (Facility = 'ALL') THEN
IF (isEnabled = 'ALL') THEN
SELECT * FROM myTable
ELSE
SELECT * FROM myTable
WHERE isEnabled = value
END IF;
ELSE
IF (isEnabled = 'ALL') THEN
SELECT * FROM myTable
WHERE facility = someID
ELSE
SELECT * FROM myTable
WHERE facility = someID AND isEnabled = value
END IF;
END IF;
Я хотел бы иметь возможность объединить логику в предложении WHERE, используя либо оператор CASE, либо условный оператор (И / ИЛИ), но у меня возникают проблемы, когда я обдумываю его сегодня утром.В настоящее время запрос не выполняется, как ожидается.
Любое понимание будет полезным!Спасибо