codice:
DELIMITER $$
DROP PROCEDURE IF EXISTS `test_proc`$$
CREATE PROCEDURE `test_proc`(parameter VARCHAR(100),data1 date,data2 date)
BEGIN
DECLARE T1 TEXT;
DECLARE T2 TEXT;
DECLARE T3 TEXT;
DECLARE T4 TEXT;
DECLARE T5 TEXT;
SET t4 = data1;
SET t5 = data2;
SET T1 = CONCAT('SELECT * FROM TBL WHERE ID IN (', parameter, ')');
SET T2 = CONCAT(' and prezzi(ID,',T4,',',T5,')');
SET T3 = CONCAT(T1,T2);
SELECT T3;
END$$
DELIMITER ;
ottengo :
SELECT * FROM TBL WHERE ID IN (1,2,3) and prezzi(ID,2007-10-22,2007-10-24)