2011-02-16 36 views
1

是否有任何简单的方法可以在存储过程的输入值集中查找最小/最大值?在存储过程中查找输入值的最小/最大值,MySQL

例如:

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语句()分钟()与表工作一段时间。

我找不到任何类似问题的参考。

谢谢。

回答

3
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$$