Chọn MySQL ngẫu nhiên

Trong MySQL, hàm

SELECT RAND();
5 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
SELECT RAND();
6

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 diễn ra như thế này

RAND([N])

Trong đó

SELECT RAND();
7 là giá trị hạt giống tùy chọn mà bạn có thể sử dụng để tác động đến kết quả

Ví dụ 1 – Không có đối số

Đâ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 cung cấp đố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ó

Đây là một ví dụ về những gì sẽ xảy ra khi chúng ta chạy nhiều hàm

SELECT RAND();
5 cùng nhau

SELECT 
  RAND() 'Result 1',
  RAND() 'Result 2',
  RAND() 'Result 3';

Kết quả

________số 8

Ví dụ 2 – Sử dụng giá trị hạt giống

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 đầu ra của chức năng

SELECT RAND(5);

Kết quả

SELECT RAND();
0

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();
1

Kết quả

SELECT RAND();
2

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 hàm

SELECT RAND();
5 như một phần của biểu thức

SELECT RAND();
4

Kết quả

SELECT RAND();
0

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 hàm

SELECT RAND();
5 với hàm
+--------------------+
| RAND()             |
+--------------------+
| 0.4335442291885095 |
+--------------------+
1 để trả về một số nguyên ngẫu nhiên giữa hai số

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

SELECT RAND();
8

Công thức trên sẽ tạo ra một số thập phân ngẫu nhiên >= 10 và < 25. (Ghi chú. 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. )

Dãy số nguyên ngẫu nhiên

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

SELECT RAND();
9

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

RAND([N])
0

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 đối với

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

  • mysql 5. 7, MySQL5. 6, MySQL5. 5, MySQL5. 1, MySQL5. 0, MySQL4. 1, MySQL4. 0, Mysql 3. 23

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 một số nguyên ngẫu nhiên giữa hai số (tức là. phạm vi bao gồm)

Đôi khi chúng tôi muốn tìm nạp các bản ghi ngẫu nhiên từ bảng cơ sở dữ liệu. Ví dụ: bảng của chúng tôi đã lưu trữ một số trích dẫn và cần hiển thị một trích dẫn ngẫu nhiên trên GUI. Trong trường hợp như vậy, chúng tôi sẽ viết một truy vấn SQL để tìm nạp các bản ghi ngẫu nhiên từ bảng. Trong phần này, chúng ta sẽ xem cách chọn một bản ghi ngẫu nhiên từ một bảng

Ví dụ trong thế giới thực

  1. Bài kiểm tra trực tuyến, nơi chúng tôi sẽ hiển thị một câu hỏi ngẫu nhiên
  2. Hiển thị các mặt hàng nổi bật ngẫu nhiên trên trang chủ của một trang web thương mại điện tử
  3. Hiển thị ảnh ngẫu nhiên từ thư viện và sử dụng ảnh này làm ảnh nổi bật

MySQL không cung cấp bất kỳ câu lệnh tích hợp nào để trả về các hàng ngẫu nhiên từ bảng cơ sở dữ liệu. Chúng ta có thể thực hiện điều này với sự trợ giúp của hàm RAND()

cú pháp

Sau đây là cú pháp để chọn các bản ghi ngẫu nhiên từ một bảng cơ sở dữ liệu

Hãy để chúng tôi hiểu các tham số của câu lệnh một cách chi tiết

  • Đầu tiên, chúng tôi đã chỉ định tên bảng mà chúng tôi sẽ chọn các bản ghi ngẫu nhiên
  • Thứ hai, chúng tôi đã chỉ định hàm RAND trả về các giá trị ngẫu nhiên cho mỗi hàng trong bảng
  • Thứ ba, chúng tôi đã chỉ định ORDER BY Mệnh đề này sắp xếp tất cả các hàng của bảng theo số ngẫu nhiên được tạo bởi hàm RAND()
  • Cuối cùng, chúng ta đã chỉ định mệnh đề LIMIT chọn N bản ghi ngẫu nhiên từ một bảng cơ sở dữ liệu

Thí dụ

Hãy cho chúng tôi hiểu cách chúng tôi có thể tạo các bản ghi ngẫu nhiên từ bảng cơ sở dữ liệu thông qua một ví dụ. Đầu tiên, chúng ta sẽ tạo một bảng có tên 'students' bằng cách sử dụng câu lệnh bên dưới

Tiếp theo, chúng ta sẽ điền các bản ghi vào bảng này bằng cách sử dụng câu lệnh INSERT như sau

Tiếp theo, chúng ta sẽ hiển thị tất cả các bản ghi từ bảng bằng câu truy vấn như sau


Chọn MySQL ngẫu nhiên

Bây giờ, chúng tôi sẽ thực hiện truy vấn bên dưới để chọn các bản ghi ngẫu nhiên từ bảng. Giả sử chúng ta muốn chọn năm bản ghi ngẫu nhiên từ bảng;

Nó trả về đầu ra sau

Chọn MySQL ngẫu nhiên

Nếu chúng ta chạy lại truy vấn trên, chúng ta sẽ nhận được đầu ra như sau

Chọn MySQL ngẫu nhiên

Cần lưu ý rằng bất cứ khi nào chúng ta thực hiện hàm RAND(), nó luôn trả về một kết quả khác vì nó là ngẫu nhiên. Do đó, kỹ thuật này chỉ hoạt động hiệu quả với một chiếc bàn nhỏ. Trong trường hợp của một bảng lớn, nó sẽ chậm. Đó là bởi vì MySQL đầu tiên sắp xếp toàn bộ bảng và sau đó trả về những cái ngẫu nhiên

Tốc độ truy vấn cũng phụ thuộc vào số lượng hàng có sẵn trong bảng. Do đó, nếu bảng của chúng tôi có nhiều hàng hơn, sẽ mất nhiều thời gian hơn để tạo các bản ghi ngẫu nhiên cho mỗi hàng

Làm cách nào để CHỌN ngẫu nhiên trong MySQL?

Đầu tiên, chúng tôi đã chỉ định tên bảng mà chúng tôi sẽ chọn các bản ghi ngẫu nhiên. Thứ hai, chúng tôi đã chỉ định hàm RAND trả về các giá trị ngẫu nhiên cho mỗi hàng trong bảng. Thứ ba, chúng tôi đã chỉ định ORDER BY Mệnh đề này sắp xếp tất cả các hàng của bảng theo số ngẫu nhiên được tạo bởi hàm RAND()

Làm thế nào để sử dụng rand() trong MySQL?

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 một số nguyên R ngẫu nhiên trong phạm vi i <= R < j , hãy sử dụng biểu thức FLOOR( i + RAND() * ( j − i )). . Bảng 12. 10 hàm toán học

Làm cách nào để lấy id ngẫu nhiên trong MySQL?

Trong MySQL, Hàm UUID() trả về Mã định danh duy nhất toàn cầu tạo giá trị dài 36 ký tự là 5 phần số thập lục phân . Nếu bạn muốn tạo mật khẩu ngẫu nhiên, bạn có thể sử dụng chức năng này để tạo số ngẫu nhiên.

ORDER BY rand() là gì?

Kỹ thuật ORDER BY RAND() trong MySQL hoạt động để chọn các giá trị cột hoặc bản ghi từ bảng cơ sở dữ liệu được hiển thị ngẫu nhiên . Câu lệnh SELECT được sử dụng để truy vấn kỹ thuật này. Chúng tôi sẽ sắp xếp các bản ghi được tìm nạp bằng một truy vấn trong MySQL bằng một hàm cụ thể RAND().