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

อัปเดตคอลัมน์ด้วยตัวเลขสุ่มใน MySQL ด้วย RAND()

บทความนี้สาธิตการอัปเดตคอลัมน์ตัวเลขทั้งหมดในตารางด้วยค่าสุ่ม โดยใช้ 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)