บทความนี้สาธิตการอัปเดตคอลัมน์ตัวเลขทั้งหมดในตารางด้วยค่าสุ่ม โดยใช้ RAND() คูณช่วงที่ต้องการ แล้ว CAST ... AS UNSIGNED เพื่อแปลงเป็นจำนวนเต็ม
สร้างตารางและข้อมูลทดสอบ
mysql> CREATE TABLE DemoTable746 (Number INT);
Query OK, 0 rows affected (0.56 sec)
mysql> INSERT INTO DemoTable746 VALUES(100), (200), (300), (400);
คิวรีอัปเดตด้วยตัวเลขสุ่ม 0-9999
mysql> UPDATE DemoTable746
SET Number = CAST(RAND() * 10000 AS UNSIGNED);
Query OK, 4 rows affected (0.13 sec)
ผลลัพธ์ตัวอย่าง (ค่าสุ่มเปลี่ยนทุกครั้ง)
+--------+
| Number |
+--------+
| 4422 |
| 1350 |
| 3485 |
| 3371 |
+--------+
คำอธิบาย:
RAND()- สุ่มเลขทศนิยม 0.0000... ถึง 0.9999...RAND() * 10000- ขยายช่วงเป็น 0 ถึง 9999.999...CAST(... AS UNSIGNED)- แปลงเป็นจำนวนเต็มบวก (ปัดทิ้งทศนิยม)- รันหลายครั้งจะได้ค่าใหม่ทุกครั้ง
การกำหนดช่วงเฉพาะ (Min-Max):
SET Number = CAST(RAND() * (Max - Min + 1) + Min AS UNSIGNED);
-- ตัวอย่าง 100-999: CAST(RAND() * 900 + 100 AS UNSIGNED)