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

Стойности на Postgres ORDER BY в IN списък с помощта на Rails Active Record

Вашият свързан отговор предоставя точно това, от което се нуждаете, просто трябва да го кодирате в Ruby по гъвкав начин.

Нещо подобно:

class User
  def self.find_as_sorted(ids)
    values = []
    ids.each_with_index do |id, index|
      values << "(#{id}, #{index + 1})"
    end
    relation = self.joins("JOIN (VALUES #{values.join(",")}) as x (id, ordering) ON #{table_name}.id = x.id")
    relation = relation.order('x.ordering')
    relation
  end
end

Всъщност бихте могли лесно да поставите това в модул и да го смесите във всеки клас ActiveRecord, който се нуждае от него, тъй като използва table_name и self не е имплементиран с никакви конкретни имена на класове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. деактивирайте БЕЛЕЖИТЕ в изхода на psql

  2. Отказ за репликация на PostgreSQL 101

  3. Как да изберете редове, където комбинация от 2 колони е една и съща

  4. Сортиране на набор от заявки:Указване на сортиране на колони за Django ORM заявка

  5. Задайте връщана стойност по подразбиране за функция на Postgres