Mysql
 sql >> база данни >  >> RDS >> Mysql

Rails избират произволен запис

Повечето от примерите, които съм виждал, които правят това, в крайна сметка преброяват редовете в таблицата, след което генерират произволно число, за да изберете едно. Това е така, защото алтернативи като RAND() са неефективни, тъй като всъщност получават всеки ред и им присвояват произволно число, или поне така прочетох (и според мен са специфични за базата данни).

Можете да добавите метод като този, който намерих тук .

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

Това ще направи така, че всеки модел, който използвате, има метод, наречен random който работи по начина, който описах по-горе:генерира произволно число в рамките на броя на редовете в таблицата, след което извлича реда, свързан с това произволно число. Така че по принцип правите само едно извличане, което вероятно предпочитате :)

Можете също да разгледате този плъгин за rails .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql транзакции в транзакции

  2. Сложна php mysqli заявка за вмъкване на данни, ако не съществуват:получаване на дублирано име на колона '?'

  3. Как да подредите и групирате MySQL резултати

  4. Как да посочите Ruby regex, когато използвате Active Record в Rails?

  5. ТОП 5 Синтаксис за изтриване на MySQL със съвети за T-SQL разработчици