Hướng dẫn generate random integer in mysql - tạo số nguyên ngẫu nhiên trong mysql

Hướng dẫn generate random integer in mysql - tạo số nguyên ngẫu nhiên trong mysql


Hướng dẫn MySQL này giải thích cách sử dụng chức năng MySQL RAND với cú pháp và ví dụ.RAND function with syntax and examples.

Sự mô tả

Hàm MySQL RAND có thể được sử dụng để trả về một số ngẫu nhiên hoặc một số ngẫu nhiên trong một phạm vi.

Cú pháp

Cú pháp cho hàm RAND trong MySQL là:

RAND( [seed] )

Tham số hoặc đối số

hạt giống. Nếu được chỉ định, nó sẽ tạo ra một chuỗi các số ngẫu nhiên lặp lại mỗi khi giá trị hạt giống được cung cấp.

Ghi chú

  • Hàm Rand sẽ trả về một giá trị giữa 0 (bao gồm) và 1 (độc quyền), vì vậy giá trị> = 0 và giá trị <1.
  • Hàm Rand sẽ trả về một số hoàn toàn ngẫu nhiên nếu không có hạt giống nào được cung cấp.
  • Hàm RAND sẽ trả về một chuỗi các số ngẫu nhiên lặp lại mỗi khi một giá trị hạt cụ thể được sử dụng.

Phạm vi thập phân ngẫu nhiên

Để tạo số thập phân ngẫu nhiên giữa hai giá trị (phạm vi), bạn có thể sử dụng công thức sau:

SELECT RAND()*(b-a)+a;

Trong đó A là số nhỏ nhất và B là số lớn nhất mà bạn muốn tạo ra một số ngẫu nhiên cho.

SELECT RAND()*(25-10)+10;

Công thức trên sẽ tạo ra số thập phân ngẫu nhiên> = 10 và <25. (Lưu ý: Công thức này sẽ không bao giờ trả về giá trị 25 vì hàm ngẫu nhiên sẽ không bao giờ trả về 1.)Note: this formula will never return a value of 25 because the random function will never return 1.)

Phạm vi số nguyên ngẫu nhiên

Để tạo số nguyên ngẫu nhiên giữa hai giá trị (phạm vi bao gồm), bạn có thể sử dụng công thức sau:

SELECT FLOOR(RAND()*(b-a+1))+a;

Trong đó A là số nhỏ nhất và B là số lớn nhất mà bạn muốn tạo ra một số ngẫu nhiên cho.

SELECT FLOOR(RAND()*(25-10+1))+10;

Công thức trên sẽ tạo ra số thập phân ngẫu nhiên> = 10 và <25. (Lưu ý: Công thức này sẽ không bao giờ trả về giá trị 25 vì hàm ngẫu nhiên sẽ không bao giờ trả về 1.)

Phạm vi số nguyên ngẫu nhiên

Để tạo số nguyên ngẫu nhiên giữa hai giá trị (phạm vi bao gồm), bạn có thể sử dụng công thức sau:

  • Công thức trên sẽ tạo ra một số nguyên ngẫu nhiên trong khoảng từ 10 đến 25, bao gồm.

Áp dụng cho

Hàm Rand có thể được sử dụng trong các phiên bản sau của MySQL:

MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23

mysql> SELECT RAND();
Result: 0.2430297417966926     (no seed value, so your answer will vary)

mysql> SELECT RAND(9);
Result: 0.406868412538309      (with seed value of 9)

mysql> SELECT RAND(-5);
Result: 0.9043048842850187     (with seed value of -5)

Ví dụ về số ngẫu nhiên

Hãy khám phá cách sử dụng hàm Rand trong MySQL để tạo số ngẫu nhiên> = 0 và

Ví dụ:

Mặc dù hàm RAND sẽ trả về giá trị 0, nhưng nó sẽ không bao giờ trả về giá trị là 1. Nó sẽ luôn trả về giá trị nhỏ hơn 1.Note: it will never return a value of 10):

mysql> SELECT RAND()*(10-1)+1;
Result: 3.71321560508871      (no seed value, so your answer will vary)

mysql> SELECT RAND(9)*(10-1)+1;
Result: 4.661815712844781     (with seed value of 9)

mysql> SELECT RAND(-5)*(10-1)+1;
Result: 9.138743958565168     (with seed value of -5)

Ví dụ về phạm vi thập phân ngẫu nhiên

Hãy khám phá cách sử dụng hàm RAND trong MySQL để tạo số thập phân ngẫu nhiên giữa hai số (IE: Phạm vi).

Ví dụ: sau đây sẽ tạo ra một giá trị thập phân ngẫu nhiên là> = 1 và <10 (lưu ý: nó sẽ không bao giờ trả về giá trị 10):

mysql> SELECT FLOOR(RAND()*(30-20+1))+20;
Result: 22                    (no seed value, so your answer will vary)

mysql> SELECT FLOOR(RAND(9)*(30-20+1))+20;
Result: 24                    (with seed value of 9)

mysql> SELECT FLOOR(RAND(-5)*(30-20+1))+20;
Result: 29                    (with seed value of -5)

Tôi đang cố gắng tạo một số nguyên ngẫu nhiên cho mỗi hàng tôi chọn từ 1 đến 60 làm bộ đếm thời gian.

SELECT downloads.date, products.*, (FLOOR(1 + RAND() * 60)) AS timer

Tôi đã tìm kiếm và tiếp tục đến chức năng tầng này như cách chọn một số nguyên ngẫu nhiên trong một phạm vi. Điều này cho tôi 1 cho mỗi hàng. Tôi còn thiếu gì?

Tôi đang ở trên mysql 5.0.75

Đây là phần còn lại của truy vấn mà tôi tin rằng nó có thể là một vấn đề làm tổ

SELECT *
FROM (
 SELECT downloads.date, products.*, FLOOR(1 + (RAND() * 60)) AS randomtimer, 
 (
 SELECT COUNT( * )
 FROM distros
 WHERE distros.product_id = products.product_id
 ) AS distro_count,

 (SELECT COUNT(*) FROM downloads WHERE downloads.product_id = products.product_id) AS true_downloads

 FROM downloads
 INNER JOIN products ON downloads.product_id = downloads.product_id
) AS count_table
WHERE count_table.distro_count > 0
AND count_table.active = 1
ORDER BY count_table.randomtimer , count_table.date DESC LIMIT 10

Đã hỏi ngày 11 tháng 6 năm 2009 lúc 23:57Jun 11, 2009 at 23:57

Kevzettlerkevzettlerkevzettler

4.86314 Huy hiệu vàng52 Huy hiệu bạc99 Huy hiệu Đồng14 gold badges52 silver badges99 bronze badges

Điều này đang làm việc cho tôi. Phiên bản MySQL của bạn có thể?

SELECT RAND()*(b-a)+a;
0

Đã trả lời ngày 12 tháng 6 năm 2009 lúc 0:08Jun 12, 2009 at 0:08

Hướng dẫn generate random integer in mysql - tạo số nguyên ngẫu nhiên trong mysql

Ryan Oberoiryan OberoiRyan Oberoi

13.4K2 Huy hiệu vàng23 Huy hiệu bạc23 Huy hiệu đồng2 gold badges23 silver badges23 bronze badges

1

Đầu ra của hàm

SELECT RAND()*(b-a)+a;
5 sẽ luôn là giá trị từ 0 đến 1.0 and 1.

Thử cái này:

SELECT RAND()*(b-a)+a;
1

Michel Ayres

5.73310 Huy hiệu vàng61 Huy hiệu bạc97 Huy hiệu Đồng10 gold badges61 silver badges97 bronze badges

Đã trả lời ngày 12 tháng 6 năm 2009 lúc 0:10Jun 12, 2009 at 0:10

Chris Morleychris MorleyChris Morley

2.4262 Huy hiệu vàng19 Huy hiệu bạc20 Huy hiệu Đồng2 gold badges19 silver badges20 bronze badges

1

Câu hỏi cũ, nhưng luôn luôn là vấn đề thực sự.

Đây là một cách để tạo chức năng MySQL

SELECT RAND()*(b-a)+a;
6 dựa trên hướng dẫn sử dụng:

SELECT RAND()*(b-a)+a;
2
SELECT RAND()*(b-a)+a;
3

Đã trả lời ngày 22 tháng 3 năm 2021 lúc 10:29Mar 22, 2021 at 10:29

Hướng dẫn generate random integer in mysql - tạo số nguyên ngẫu nhiên trong mysql

JCH77JCH77JCH77

94911 Huy hiệu bạc10 Huy hiệu đồng11 silver badges10 bronze badges

Tôi đang chạy truy vấn của bạn và nó cho tôi một số ngẫu nhiên cho mỗi hàng .... có thể có liên quan đến tên của ngẫu nhiên (hẹn giờ)?

Đã trả lời ngày 12 tháng 6 năm 2009 lúc 0:07Jun 12, 2009 at 0:07

JaimejaimeJaime

6.6761 Huy hiệu vàng26 Huy hiệu bạc42 Huy hiệu đồng1 gold badge26 silver badges42 bronze badges

Bạn có thể tăng số lượng nhân với số lượng hồ sơ trong bảng.

SELECT RAND()*(b-a)+a;
4

Đã trả lời ngày 4 tháng 2 năm 2015 lúc 15:25Feb 4, 2015 at 15:25

Làm thế nào để bạn tạo ra một số nguyên ngẫu nhiên trong SQL?

Để tạo một số nguyên ngẫu nhiên giữa hai giá trị (phạm vi), bạn có thể sử dụng công thức sau: Chọn Tầng (Rand ()*(B-A+1))+A; Trong đó A là số nhỏ nhất và B là số lớn nhất mà bạn muốn tạo ra một số ngẫu nhiên cho.SELECT FLOOR(RAND()*(b-a+1))+a; Where a is the smallest number and b is the largest number that you want to generate a random number for.

Rand () trong mysql là gì?

Hàm Rand () trả về một số ngẫu nhiên giữa 0 (bao gồm) và 1 (độc quyền).returns a random number between 0 (inclusive) and 1 (exclusive).

Làm cách nào để tạo số int ngẫu nhiên?

Để tạo các số ngẫu nhiên bằng cách sử dụng ThreadLocalRandom, hãy làm theo các bước bên dưới:..
Nhập lớp java.util.concien.threadlocalrandom ..
Gọi phương thức.Để tạo số ngẫu nhiên của loại int ThreadLocalRandom.Current (). NextInt () để tạo số ngẫu nhiên của loại kép képLocalRandom.civerse (). NextDouble ().

Làm thế nào chúng ta có thể nhận được một số ngẫu nhiên từ 1 đến 100 trong MySQL?

Để có được giá trị ngẫu nhiên giữa hai giá trị, hãy sử dụng phương thức mysql rand () với sàn ().Cú pháp như sau.Chọn tầng (rand () * (MaximumValue-MinimumValue) + MinimumValue) như bất kỳVariaBlename;Hãy để chúng tôi kiểm tra với một số giá trị tối đa và tối thiểu.use MySQL rand() method with floor(). The syntax is as follows. select FLOOR( RAND() * (maximumValue-minimumValue) + minimumValue) as anyVariableName; Let us check with some maximum and minimum value.