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

Đường ray chọn bản ghi ngẫu nhiên

Hầu hết các ví dụ tôi đã thấy làm điều này kết thúc bằng việc đếm các hàng trong bảng, sau đó tạo một số ngẫu nhiên để chọn một. Điều này là do các lựa chọn thay thế như RAND() không hiệu quả ở chỗ chúng thực sự lấy mọi hàng và gán cho chúng một số ngẫu nhiên, hoặc vì vậy tôi đã đọc (và tôi nghĩ là cơ sở dữ liệu cụ thể).

Bạn có thể thêm một phương thức như phương thức tôi đã tìm thấy tại đây .

module ActiveRecord
  class Base
    def self.random
      if (c = count) != 0
        find(:first, :offset =>rand(c))
      end
    end
  end
end

Điều này sẽ làm cho bất kỳ Mô hình nào bạn sử dụng đều có phương thức được gọi là random hoạt động theo cách mà tôi đã mô tả ở trên:tạo một số ngẫu nhiên trong số các hàng trong bảng, sau đó tìm nạp hàng được liên kết với số ngẫu nhiên đó. Vì vậy, về cơ bản, bạn chỉ thực hiện một lần tìm nạp, đó là điều bạn có thể thích :)

Bạn cũng có thể xem qua plugin rails này .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể khởi động mùa xuân để tự động tạo giản đồ cơ sở dữ liệu

  2. Khung thực thể có di chuyển cơ sở dữ liệu mysql không thành công khi tạo chỉ mục

  3. Một cách tốt hơn để tạo mảng json này từ dữ liệu MySql với php

  4. CHỌN nhiều bảng trong một truy vấn

  5. Truy xuất dữ liệu đếm từ Firebase như MySQL