Mysql
 sql >> Database >  >> RDS >> Mysql

come utilizzare la procedura memorizzata WHERE IN mysql

È possibile utilizzare la concatenazione di stringhe e l'istruzione PREPARE per eseguire query create dinamicamente.

somestring deve essere costruito in un formato SQL valido come '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 ;