Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment utiliser la procédure stockée WHERE IN mysql

Vous pouvez utiliser la concaténation de chaînes et l'instruction PREPARE pour exécuter des requêtes construites dynamiquement.

somestring doit être construit dans un format SQL valide comme '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 ;