Fala galera beleza?
Seguinte, estou montando uma procedure, onde insiro como parâmetro a quantidade de linhas que ele ira retornar e caso seja 0 ou esteja em branco, ele retorna todas as linhas possíveis, porém na minha lógica está dando erro de sintaxe e então precisava da opinião de vocês. Segue o que eu tenho feito:
CREATE DEFINER=`root`@`localhost` PROCEDURE `consultarPostagens`(
in cat varchar(40),
in limite int(11)
)
BEGIN
select * from tb_post where
( case when cat is null or cat = '' then categoria is not null
else categoria = cat end) and
( case when limite > 0 or limite <> '' then limit limite end )
END
Resumindo, a procedure retorna todas as postagens e se for definido uma categoria, ela traz todos as postagens daquela categoria.
O problema está no limite, não sei porque não consigo colocar dentro do case o termo 'limit', ele da erro de sintaxe.
Se alguém tiver alguma ideia de melhor de como fazer ou como escrever esse comando, agradeceria.
Valeus!