我在存储过程中使用了 mysql。在存储过程中,我用 IN() 函数编写了选择查询。我已经在函数内部传递了 5 个值,但它只显示第一个值数据。我的代码是
DELIMITER $$ CREATE DEFINER=
root
@localhost
PROCEDUREpro1
(INreg_id
VARCHAR(50))BEGIN
SELECT COUNT(master_country_id) AS num FROM master_country WHERE master_region_id IN(reg_id) ORDER BY master_country_id DESC;
END$$
DELIMITER ;
国家是,
1 - 印度
2 - 澳大利亚
3 - 加拿大
4 - 西类牙
5 - 斯里兰卡
我调用的程序是
CALL pro1(1,4,2);
实际结果是,
印度、西类牙、澳大利亚
但是它显示的结果是,
印度
最佳答案
DELIMITER $$ CREATE DEFINER=root@localhost PROCEDURE pro1(reg_id VARCHAR(50))
BEGIN
SELECT COUNT(master_country_id) AS num FROM master_country WHERE master_region_id REGEXP (reg_id) ORDER BY master_country_id DESC;
END$$
DELIMITER ;
你可以调用你的过程 CALL pro1('1|4|2');
关于mysql - 如何在存储过程中使用 IN() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25888316/