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

สุ่มค่าจากรายการเฉพาะด้วย ELT() และ RAND() ใน MySQL

ใช้ ELT() ร่วมกับ RAND() เพื่อสุ่มเลือกค่าจากรายการที่กำหนดไว้

ไวยากรณ์

SELECT ELT(FLOOR(RAND() * จำนวนรายการ) + 1, ค่า1, ค่า2, ค่า3, ...);

ตัวอย่างสุ่มจาก 10 ค่า (100 ถึง 1000)

mysql> SELECT ELT(FLOOR(RAND() * 10) + 1,
    -> 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000)
    -> AS random_value_from_listOfValues;

รันครั้งที่ 1

+--------------------------------+
| random_value_from_listOfValues |
+--------------------------------+
| 1000                           |
+--------------------------------+

รันครั้งที่ 2 (ผลลัพธ์ต่างออกไป)

+--------------------------------+
| random_value_from_listOfValues |
+--------------------------------+
| 400                            |
+--------------------------------+

คำอธิบาย:

  • RAND() สุ่มเลข 0-1
  • FLOOR(RAND() * 10) → 0-9
  • + 1 → 1-10 (index ของ ELT เริ่มที่ 1)
  • ELT(index, ...) คืนค่าตำแหน่งที่ index

ประยุกต์: สุ่มค่าจากชุดค่าที่กำหนดไว้ล่วงหน้า เช่น สุ่มสี สุ่มสถานะ ฯลฯ