Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีสุ่มตัวเลขในช่วงที่กำหนดใน MySQL

การใช้ RAND() และ FLOOR() สำหรับสุ่มตัวเลข

MySQL มีฟังก์ชัน RAND() สำหรับสุ่มเลขทศนิยม 0-1 ร่วมกับ FLOOR() เพื่อปัดเศษเป็นจำนวนเต็ม

รูปแบบคำสั่ง

SELECT FLOOR(RAND() * (maximumValue - minimumValue) + minimumValue) AS anyVariableName;

ตัวอย่างสุ่มตัวเลขระหว่าง 100 ถึง 200

mysql> SELECT FLOOR(RAND() * (200 - 100) + 100) AS RandomValue;
+-------------+
| RandomValue |
+-------------+
| 144         |
+-------------+
1 row in set (0.00 sec)

รันซ้ำจะได้ค่าต่างกัน

mysql> SELECT FLOOR(RAND() * (200 - 100) + 100) AS RandomValue;
+-------------+
| RandomValue |
+-------------+
| 184         |
+-------------+
1 row in set (0.00 sec)

อธิบายสูตร:

  • RAND() สุ่มค่า 0.0000... ถึง 0.9999...
  • (max - min) = ช่วงของตัวเลข (200-100=100)
  • RAND() * 100 = ค่า 0 ถึง 99.99...
  • + minimumValue = เลื่อนช่วงเป็น 100 ถึง 199.99...
  • FLOOR() = ปัดเศษลงเป็นจำนวนเต็ม (100-199)

หมายเหตุ: สูตรนี้รวมค่า minimum และ maximum ไว้ด้วย (inclusive)