Я пытаюсь написать хранимую процедуру в mysql, которая имеет 10 'in' параметров.
Проблема в том, что некоторые параметры могут быть нулевыми или иметь значение. В случае нуля он не должен пытаться искать этот столбец в части where
. То же самое относится и к сортировке столбцов.
То, как у меня сейчас это выглядит, выглядит следующим образом:
if(par1 is null) then
if(par2 is null) then
if(par3 is null) then
-- some query: select * from blabla where 1=1 order by something
else
-- other query: select * from blabla where col3=par3 order by something
else
if(par3 is null) then
-- some query: select * from blabla where col2=par2 order by something
else
-- other query: select * from blabla where col2=par2 and col3=par3 order by something
else
-- same as in the 'if' part
Так что, как вы видите, работать с ним очень быстро, сейчас Представьте, что это делается для многих параметров. Как я могу упростить это, если это возможно? Любой совет?