Trong MySQL, RAND()
chức năng cho phép bạn tạo một số ngẫu nhiên. Cụ thể, hàm trả về một giá trị dấu phẩy động ngẫu nhiên v trong phạm vi 0 <= v < 1.0
.
Bạn cũng có thể tác động đến số ngẫu nhiên bằng cách cung cấp giá trị gốc làm đối số.
Cú pháp
Cú pháp như sau:
RAND([N])
Ở đâu N
là giá trị gốc tùy chọn mà bạn có thể sử dụng để ảnh hưởng đến kết quả.
Ví dụ 1 - Không đối số
Dưới đây là một ví dụ cơ bản để chứng minh điều gì sẽ xảy ra khi chúng tôi không đưa ra đối số.
SELECT RAND();
Kết quả:
+--------------------+ | RAND() | +--------------------+ | 0.4335442291885095 | +--------------------+
Kết quả không phải là một hằng số - nó sẽ khác nhau mỗi khi bạn chạy nó.
Dưới đây là một ví dụ về những gì sẽ xảy ra khi chúng tôi chạy nhiều RAND()
chức năng cùng nhau.
SELECT RAND() 'Result 1', RAND() 'Result 2', RAND() 'Result 3';
Kết quả:
+--------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +--------------------+---------------------+---------------------+ | 0.9413559538697414 | 0.40614711251682334 | 0.20666773170853753 | +--------------------+---------------------+---------------------+
Ví dụ 2 - Sử dụng Giá trị gốc
Như đã đề cập, bạn có thể chuyển vào một đối số để xác định giá trị hạt giống. Điều này cho phép bạn tác động đến kết quả đầu ra của hàm.
SELECT RAND(5);
Kết quả:
+---------------------+ | RAND(5) | +---------------------+ | 0.40613597483014313 | +---------------------+
Trong trường hợp này, hàm sẽ trả về cùng một giá trị mỗi lần nếu một giá trị đối số bằng nhau được cung cấp.
SELECT RAND(5) 'Result 1', RAND(5) 'Result 2', RAND(5) 'Result 3';
Kết quả:
+---------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +---------------------+---------------------+---------------------+ | 0.40613597483014313 | 0.40613597483014313 | 0.40613597483014313 | +---------------------+---------------------+---------------------+
Ví dụ 3 - Sử dụng RAND () như một phần của biểu thức
Bạn có thể sử dụng RAND()
hoạt động như một phần của biểu thức.
SELECT RAND()*10;
Kết quả:
+-------------------+ | RAND()*10 | +-------------------+ | 8.148973517258627 | +-------------------+
Ví dụ 4 - Trả về một số nguyên ngẫu nhiên giữa hai số
Bạn có thể kết hợp RAND()
hàm với FLOOR()
hàm để trả về một số nguyên ngẫu nhiên giữa hai số.
Dưới đây là cách tạo một số nguyên từ 5 đến 10 (bao gồm cả).
SELECT FLOOR(RAND()*(10-5+1)+5);
Kết quả:
+--------------------------+ | FLOOR(RAND()*(10-5+1)+5) | +--------------------------+ | 7 | +--------------------------+
Hãy chạy cùng một mã nhiều lần để xem các kết quả khác nhau.
SELECT FLOOR(RAND()*(10-5+1)+5) 'Result 1', FLOOR(RAND()*(10-5+1)+5) 'Result 2', FLOOR(RAND()*(10-5+1)+5) 'Result 3';
Kết quả:
+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | +----------+----------+----------+ | 7 | 9 | 6 | +----------+----------+----------+