Có một bảng lớn và tôi muốn thêm cột có số được chọn ngẫu nhiên cho mỗi bản ghi. 1, 2 hoặc 3.Cập nhật MySQL với số ngẫu nhiên từ 1-3
Gặp khó khăn. Bất kỳ ý tưởng?
Có một bảng lớn và tôi muốn thêm cột có số được chọn ngẫu nhiên cho mỗi bản ghi. 1, 2 hoặc 3.Cập nhật MySQL với số ngẫu nhiên từ 1-3
Gặp khó khăn. Bất kỳ ý tưởng?
Hãy thử điều này:
UPDATE tableName SET columnName = FLOOR(1 + RAND() *3);
Từ MySQL documentation cho RAND
:
Trả về một ngẫu nhiên dấu chấm động giá trị v trong khoảng 0 < = v < 1.0.
Vì vậy trong truy vấn trên, giá trị lớn nhất mà có thể được tạo ra bởi 1 + RAND()*3
sẽ 3.999999
, có khi rối trí sẽ cung cấp giá trị nhỏ 3. sẽ xảy ra khi RAND()
lợi nhuận 0, trong trường hợp này sẽ cung cấp cho 1.
Do
UPDATE tableName SET columnName = FLOOR(RAND() + RAND());
Sử dụng RAND() chức năng này. Nó trả về một giá trị dấu phẩy động ngẫu nhiên v trong phạm vi 0 <= v < 1.0
. Để có được số nguyên ngẫu nhiên R trong phạm vi i <= R < j
, hãy sử dụng cụm từ FLOOR(i + RAND() * (j − i))
. Ví dụ, để có được một số nguyên ngẫu nhiên trong phạm vi dải 1<= R < 3
, sử dụng câu lệnh sau:
UPDATE tableName
SET ColumnName= FLOOR(1 + rand() * 3);
NB:RAND() sản xuất giá trị float ngẫu nhiên từ 0 đến 1.
[Bạn đã thử gì? ] (http://www.whathaveyoutried.com/) Xem [hỏi lời khuyên] (http://stackoverflow.com/questions/ask-advice). –
http://stackoverflow.com/questions/6550155/mysql-get-a-random-value-between-two-values – sgeddes
Bạn chưa thử 'UPDATE' và' RAND() '? – tadman