Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

làm thế nào để lấy ngẫu nhiên câu hỏi từ cơ sở dữ liệu?

Bạn có thể sử dụng LIMIT m,n để vừa giới hạn số lượng kết quả bạn nhận được vừa bù đắp kết quả bằng một số tiền nhất định.

Bây giờ bạn có thể làm điều gì đó như:

 SELECT * FROM questions WHERE QuizID=1 LIMIT $page,5;

Nơi bạn tính toán $page dựa trên $_GET Biến đổi. Nhưng điều này sẽ không giải quyết được tính ngẫu nhiên của bạn.

Bạn luôn có thể gieo RAND ($ key) bằng một khóa nhất định mà bạn lưu trong phiên của mình để bạn có thể ORDER BY RAND($key) và sử dụng kỹ thuật giới hạn ở trên.

Có lẽ cách đơn giản nhất để thực hiện sẽ là lấy toàn bộ tập hợp kết quả, trộn nó và lưu vào bộ nhớ cache. Sau đó, sử dụng php để chỉ hiển thị một phần cụ thể của bộ nhớ cache.

Vì điều này có liên quan đến phân trang. Hãy để tôi nói cho bạn biết, GIỚI HẠN m, n có thể không nhanh như bạn nghĩ. Tìm hiểu cách cải thiện nó và đọc thêm về Phân trang hiệu quả bằng MySQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hoạt động của hàm FROM_BASE64 () trong MySQL

  2. Ping MySQL Server bằng JDBC

  3. Tôi có nên sử dụng MyISAM hoặc Bảng InnoDB cho Cơ sở dữ liệu MySQL của mình không?

  4. MySQL - Chọn hàng được chèn cuối cùng một cách dễ dàng nhất

  5. Lỗi sự kiện Mysql khi sử dụng php