Olá Pessoal, conto com a ajuda de voces para me ajudar a resolver esse problema:
Gostaria de ter a condição de listar todos os produtos se o usuário não informar o código ou apenas um produto individualmente caso o usuário informe o código.
Por que não cria duas queries separadas? Tem como fazer isso que você quer, mas fica “feio” e talvez seja ineficiente. Não sei se o query planner detecta que a comparação é desnecessária por causa do OR -1 = -1, quando ele acontece, e elimina o WHERE por completo (espero que isso aconteça). Assim:
SELECT*FROMprodutoWHEREproduto.id=idORid=-1;
Quando o usuário não informar nada, você passa -1 pra query.
Ao informar o ID, o select deverá retornar apenas o registro correspondente ao valor informado. Ao informar null para o ID e executar, deverá retornar todos os registros