sql >> Base de Datos >  >> RDS >> Mysql

cómo usar WHERE IN mysql procedimiento almacenado

Puede usar la concatenación de cadenas y la instrucción PREPARE para ejecutar consultas creadas dinámicamente.

somestring debe construirse en un 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 ;