Selecionar True e False em Select
Olá pessoal,
Tenho um form em minha aplicação que filtra vários registros, um desses filtros é se o produto está com status de bloqueado ( True/False )
Se eu marcar a checkbox a minha intenção é que ele também exiba os registros que estão marcados como bloqueado.
Só que o que está acontecendo é que eu não estou sabendo montar essse tipo de filtro dentro do select, quando marco o checkbox ele traz apenas os que estão com TRUE e se eu deixar desmarcado ele traz os que estão com FALSE.
A minha proceduire está assim:
O tipo de campo é TINYINT(1)
na verdade são dois campos o bloqueado e o inativo
CREATE DEFINER = 'root'@'localhost' PROCEDURE spProdutosConsultar(
IN pBuscaGeral1 VARCHAR(50),
IN pBuscaGeral2 VARCHAR(50),
IN pfiltrolocalestoque VARCHAR(20),
IN pfiltrobloqueado TINYINT(1),
IN pfiltroinativo TINYINT(1)
)
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
SELECTtblprodutos.ordem,tblprodutos.codigo,tblprodutos.descricaolonga,tblfabricantes.descricao,tblprodutos.codfabricante
FROMtblprodutos
LEFT JOIN tblfabricantes ON tblfabricantes.ordem =tblprodutos.ordem_fabricante
WHERE
(tblprodutos.codigo LIKE CONCAT('%', pBuscaGeral1, '%') OR
tblprodutos.descricaolonga LIKE CONCAT('%', pBuscaGeral1, '%') OR
tblprodutos.descricaocurta LIKE CONCAT('%', pBuscaGeral1, '%') OR
tblprodutos.codean LIKE CONCAT('%', pBuscaGeral1, '%') OR
tblprodutos.codfabricante LIKE CONCAT('%', pBuscaGeral1, '%') OR
tblprodutos.codoriginal LIKE CONCAT('%', pBuscaGeral1, '%')) AND
(tblprodutos.codigo LIKE CONCAT('%', pBuscaGeral2, '%') OR
tblprodutos.descricaolonga LIKE CONCAT('%', pBuscaGeral2, '%') OR
tblprodutos.descricaocurta LIKE CONCAT('%', pBuscaGeral2, '%') OR
tblprodutos.codean LIKE CONCAT('%', pBuscaGeral2, '%') OR
tblprodutos.codfabricante LIKE CONCAT('%', pBuscaGeral2, '%') OR
tblprodutos.codoriginal LIKE CONCAT('%', pBuscaGeral2, '%')) AND
tblprodutos.localestoque LIKE CONCAT('%', pfiltrolocalestoque, '%') AND
tblprodutos.bloqueado = pfiltrobloqueado AND
tblprodutos.inativo = pfiltroinativo
ORDER BY
tblprodutos.descricaolonga;
END;
Sei que tenho de usar o WHEN ou o IF, mas não estou sabendo usar, alguém pode me ajudar nessa procedure?
Discussão (1)
Carregando comentários...