Mysql
 sql >> Datenbank >  >> RDS >> Mysql

wie man die gespeicherte Prozedur WHERE IN mysql verwendet

Sie können die Zeichenfolgenverkettung und die PREPARE-Anweisung verwenden, um dynamisch erstellte Abfragen auszuführen.

somestring muss in einem gültigen SQL-Format wie '1','2','3' erstellt werden

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 ;