Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tạo thủ tục lưu trữ MySQL sinh 5 số ngẫu nhiên


Truy vấn sau tạo thủ tục lưu trữ sinh 5 số ngẫu nhiên:

mysql> DELIMITER //
mysql> DROP PROCEDURE IF EXISTS RandomNumbers;
    -> CREATE PROCEDURE RandomNumbers()
    -> BEGIN
    -> SET @i = 0;
    -> REPEAT
    -> SELECT RAND() AS 'Random Number';
    -> SET @i = @i + 1;
    -> UNTIL @i >=5 END REPEAT;
    -> END
    -> //
Query OK, 0 rows affected (0.16 sec)
Query OK, 0 rows affected (0.16 sec)

Gọi thủ tục để xem kết quả:

mysql> DELIMITER ;
mysql> CALL RandomNumbers();
+---------------------+
| Random Number       |
+---------------------+
| 0.25968261739209536 |
+---------------------+
1 row in set (0.00 sec)
+--------------------+
| Random Number      |
+--------------------+
| 0.1659662734400167 |
+--------------------+
1 row in set (0.01 sec)
+---------------------+
| Random Number       |
+---------------------+
| 0.05078354575744229 |
+---------------------+
1 row in set (0.01 sec)
+--------------------+
| Random Number       |
+--------------------+
| 0.7560189392008064 |
+--------------------+
1 row in set (0.04 sec)
+------------------+
| Random Number    |
+------------------+
| 0.62774408946535 |
+------------------+
1 row in set (0.04 sec)
Query OK, 0 rows affected (0.05 sec)

Giải thích:

  • RAND() sinh số thực ngẫu nhiên trong khoảng [0, 1)
  • Biến @i đếm số lần lặp
  • Vòng lặp REPEAT ... UNTIL @i >= 5 chạy đúng 5 lần
  • Mỗi lần lặp trả về một tập kết quả riêng biệt
Lưu ý: Thủ tục này trả về 5 tập kết quả riêng biệt, không phải một tập kết quả 5 hàng. Để gom vào một tập, cần dùng bảng tạm hoặc cursor.