mysql - 如何在存储过程中使用 IN() 函数?

标签 mysql stored-procedures

我在存储过程中使用了 mysql。在存储过程中,我用 IN() 函数编写了选择查询。我已经在函数内部传递了 5 个值,但它只显示第一个值数据。我的代码是

DELIMITER $$ CREATE DEFINER=root@localhost PROCEDURE pro1(IN reg_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/

相关文章:

php - 如何在 MySQL 表上使用内部连接?

mysql - 如何检查查询是否返回 true 或 false 以替换 PDO 中的 mysql_error()

php - 存储的数据无法在 Yii 中访问

sql-server - 当服务器不受您控制时,存储过程是个好主意吗?

php - MYSQL存储过程2个表,2个select和1个update请求到同一张表

database - 业务规则应该同时在应用层和数据库层执行,还是只在两者之一执行?

PHP : Using a variable to hold a table name, 并在查询中使用该变量

php - 检索数据库值,然后用数据库外的图像替换值

mysql - 1305 - 程序 db.delete_catelog_item 不存在

asp.net - 如何使用aspnet用户删除用户程序删除旧的aspnet用户?