He realizado un procedimiento almacenado. Quiero que filtre los datos por diferentes parámetros. Si paso un parámetro, se debe filtrar por uno; si paso dos, se debe filtrar por dos, y así sucesivamente, pero no funciona.Procedimiento almacenado de MySQL con lista de argumentos variables
¿Alguien me puede ayudar, por favor?
DROP PROCEDURE IF EXISTS medatabase.SP_rptProvince2;
CREATE PROCEDURE medatabase.`SP_rptProvince2`(
IN e_Region VARCHAR(45)
)
BEGIN
DECLARE strQuery VARCHAR(1024);
DECLARE stmtp VARCHAR(1024);
SET @strQuery = CONCAT('SELECT * FROM alldata where 1=1');
IF e_region IS NOT NULL THEN
SET @strQuery = CONCAT(@strQuery, ' AND (regionName)'=e_Region);
END IF;
PREPARE stmtp FROM @strQuery;
EXECUTE stmtp;
END;
Gracias por publicar la respuesta. pero dame este error Error de búsqueda-Mysql Database Error: columna desconocida 'South' en 'where clause' –
Se espera que pienses por ti mismo. No sé por tu comentario de dónde vino "Sur"; No sé por su pregunta a qué columna debe asociar su segundo argumento o los siguientes; No puedo decir cómo quieres llamarlo. Tienes que completar ese tipo de detalles y * pensar * por ti mismo. –
im utilizando este procedimiento para informar que tengo 5 parámetros en este procedimiento si no paso un parámetro, todos los datos se deben mostrar si paso un parámetro; la vista se debe filtrar en base a uno y los otros cuatro parámetros se pasarán nulos si pasé dos parámetros, la vista se debe filtrar por dos parámetros y los otros tres se pasarán nulos, y así sucesivamente, este es el concepto del procedimiento. si pudieras ayudarme, será muy apreciado. Soy nuevo en mysql. Hice lo mismo en sqlserver 2005 y está trabajando allí, pero no funciona aquí en mysql. –