ใช้ 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-1FLOOR(RAND() * 10)→ 0-9+ 1→ 1-10 (index ของ ELT เริ่มที่ 1)ELT(index, ...)คืนค่าตำแหน่งที่ index
ประยุกต์: สุ่มค่าจากชุดค่าที่กำหนดไว้ล่วงหน้า เช่น สุ่มสี สุ่มสถานะ ฯลฯ