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

สร้างลำดับสุ่มซ้ำได้ด้วย RAND(seed)

Seed ค่าคงที่ → ลำดับสุ่มเดิมซ้ำ

ใส่ Integer argument เข้า RAND() จะได้ลำดับเดิมทุกครั้ง

ตัวอย่าง

mysql> SELECT RAND(1), RAND(1), RAND(1);
+---------------------+---------------------+---------------------+
| RAND(1)             | RAND(1)             | RAND(1)             |
+---------------------+---------------------+---------------------+
| 0.40540353712197724 | 0.40540353712197724 | 0.40540353712197724 |
+---------------------+---------------------+---------------------+

การใช้งาน

  • Reproducible sampling: ทดสอบ Query ด้วยข้อมูลสุ่มชุดเดียวกัน
  • Pagination แบบสุ่มแต่คงที่: หน้าที่ 1 seed=1, หน้าที่ 2 seed=2
  • Unit testing: ผลลัพธ์คาดการณ์ได้

ข้อสังเกต

  • Seed ต้องเป็น Integer
  • Session-level: Seed เหมือนกันใน Session เดียว → ลำดับต่อเนื่อง
  • RAND() ไม่มี Seed → สุ่มจริง (Non-deterministic)