Я работаю над сохраненными процедурами в MySQL.
Я обнаружил, что для некоторых процессов мне нужно написать одну и ту же часть SQL-запроса, но мне нужен способ повторно использовать один и тот же код запроса (не результат) во всех процессах. Как я могу это сделать?
Вот мой S.proc:
BEGIN
SELECT date, sum(size_kg) as `total_size`, sum(net_size) as `total_net_size`,sum(bags) as `total_bags` FROM `stock` WHERE date=CURDATE() GROUP By CURDATE();
END
Код перед предложением where будет одинаковым во всех процессах, так как я могу использовать этот код части запроса (не результат)?
Поскольку эта конкретная процедура выглядит просто как один простой оператор SELECT, проще всего сделать ее многократно используемой из множества других мест, а не просто превратить ее в представление.
Если, как вы говорите, предложение WHERE может отличаться в зависимости от того, где используется код, просто пропустите предложение WHERE в представлении, и пусть каждый вызывающий оператор устанавливает свое собственное предложение WHERE, чтобы ограничить данные, возвращаемые представлением, какими бы то ни было должно быть.
Других решений пока нет …