Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chèn số ngẫu nhiên vào bảng MySQL

Sử dụng hàm RAND() kết hợp FLOOR() để sinh số nguyên ngẫu nhiên trong khoảng xác định.

Tạo bảng và dữ liệu ban đầu

mysql> CREATE TABLE DemoTable(Value INT); 
Query OK, 0 rows affected (0.46 sec)

mysql> INSERT INTO DemoTable VALUES(10), (20), (30); 
Query OK, 3 rows affected

Cập nhật thành số ngẫu nhiên

mysql> UPDATE DemoTable SET Value = FLOOR(@number * RAND()) + 1; 
Query OK, 3 rows affected (0.17 sec)

Kết quả (ví dụ):

+-------+
| Value |
+-------+
| 2     |
| 2     |
| 1     |
+-------+

⚠️ Vấn đề trong ví dụ: Biến @number chưa được gán giá trị, nên kết quả phụ thuộc vào giá trị trước đó trong session (có thể là NULL → kết quả 1).

Cách đúng để sinh số ngẫu nhiên 1-100:

UPDATE DemoTable SET Value = FLOOR(100 * RAND()) + 1;

Chèn trực tiếp số ngẫu nhiên:

INSERT INTO DemoTable VALUES (FLOOR(100 * RAND()) + 1);

Sinh nhiều hàng ngẫu nhiên:

INSERT INTO DemoTable 
SELECT FLOOR(100 * RAND()) + 1 
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3) AS t;