- 建立一個累加的函式, 兩個引數, 從第一個引數累加到第二個引數
mysql> select accumulation(1,100);
+---------------------+
| accumulation(1,100) |
+---------------------+
| 5050 |
+---------------------+
1 row in set (0.02 sec)
mysql>
複製程式碼
答案:
drop function if exists accumulation;
create function accumulation(start_num int, end_num int) returns int begin
declare result int default 0;
while
start_num <= end_num
do
set result = result + start_num;
set start_num = start_num + 1;
end while;
return result;
end;
select accumulation(1,100);
複製程式碼
中文版
drop function if exists 累加;
create function 累加(開始數字 int, 結束數字 int) returns int begin
declare 最終結果 int default 0;
while
開始數字 <= 結束數字
do
set 最終結果 = 最終結果 + 開始數字;
set 開始數字 = 開始數字 + 1;
end while;
return 最終結果;
end;
select 累加(1,100);
複製程式碼
- 建立一個函式叫動物園, 每次呼叫, 隨機返回不同的動物
mysql> select zoo();
+--------+
| zoo() |
+--------+
| 眼鏡蛇 |
+--------+
1 row in set (0.03 sec)
mysql> select zoo();
+--------+
| zoo() |
+--------+
| 白頭鷹 |
+--------+
1 row in set (0.04 sec)
mysql> select zoo();
+-------+
| zoo() |
+-------+
| 河馬 |
+-------+
1 row in set (0.06 sec)
mysql> select zoo();
+-------+
| zoo() |
+-------+
| 隼 |
+-------+
1 row in set (0.07 sec)
mysql> select zoo();
+--------+
| zoo() |
+--------+
| 白頭鷹 |
+--------+
1 row in set (0.09 sec)
mysql> select zoo();
+-------+
| zoo() |
+-------+
| 猩猩 |
+-------+
1 row in set (0.10 sec)
mysql> select zoo();
+-------+
| zoo() |
+-------+
| 鬣狗 |
+-------+
1 row in set (0.11 sec)
mysql>
複製程式碼
答案:
drop function if exists zoo;
create function zoo() returns char(20) begin
declare result char(20);
declare animals_id int;
set animals_id = floor(rand()*20) + 1;
select name into result from animals where id = animals_id;
return result;
end;
select zoo();
複製程式碼
中文版
drop function if exists 逛動物園;
create function 逛動物園() returns char(20) begin
declare 結果 char(20);
declare 動物ID int;
set 動物ID = floor(rand()*20) + 1;
select 動物名稱 into 結果 from 動物表 where id = 動物ID;
return 結果;
end;
select 逛動物園();
複製程式碼