mysql - 在存储过程中查找输入值的最小值/最大值,MySQL

标签 mysql stored-procedures

有什么简单的方法可以在存储过程的输入值集中找到最小值/最大值吗?

例如:

delimiter $$
create procedure extremevalues ( in a1 int, in a2 int , 
                                 in a3 int, in a4 int, 
                                 in a5 int, min_a int, max_a int)
begin
set max_a:=.... ;
set min_a:=.... ;
select max_a, min_a;
end$$

我知道在处理表时可以在 select 语句中使用聚合函数 max()min()

我找不到任何关于类似问题的引用。

谢谢。

最佳答案

set @a:=1, @b:=2, @c:=3;
set @max:=greatest(@a, @b, @c);
set @min:=least(@a, @b, @c);
select @max, @min;

为了适应SP,


delimiter $$
create procedure extremevalues ( in a1 int, in a2 int ,
                                 in a3 int, in a4 int,
                                 in a5 int, min_a int, max_a int)
begin
set max_a:=greatest(a1, a2, a2, a3, a4, a5);
set min_a:=least(a1, a2, a2, a3, a4, a5);
select max_a, min_a;
end$$

关于mysql - 在存储过程中查找输入值的最小值/最大值,MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5021738/

相关文章:

sql-server-2008 - 在 SQL 中合并行

sql - 插入 SQL Server 时另一个表的输出字段

mysql - 从 MySQL (MariaDB) 中的存储过程返回 ROW COUNT

php获取字符之间的字符串

c# - 存储过程参数仅返回第一个字符

mysql - 在mysql中使用group by将一个字段值重用到其他字段

MySQL - 如何在不使用 AUTO_INCRMENT 的情况下添加唯一的 INT 值?

php - 字符编码和数据库

php - 如何在一个表行中显示多条记录

mysql - 带有内部连接的 SQL 更新查询给出了超过锁定等待超时