Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como usar WHERE IN procedimento armazenado mysql


Você pode usar a concatenação de strings e a instrução PREPARE para executar consultas criadas dinamicamente.

somestring deve ser construído em um formato SQL válido como '1','2','3'
DELIMITER $$
DROP PROCEDURE IF EXISTS `abc`.`table1`$$
CREATE PROCEDURE  `abc`.`test`
(IN somestring VARCHAR(255))
BEGIN
    @s=CONCAT("
    SELECT * FROM abc.table1 
    WHERE flight_type IN (",somestring,");")
    PREPARE stmt FROM @s;
    EXECUTE @s;
END $$
DELIMITER ;