PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Nilai Postgres ORDER BY dalam daftar IN menggunakan Rails Active Record

Jawaban yang ditautkan ke jawaban memberikan apa yang Anda butuhkan, Anda hanya perlu mengkodekannya di Ruby dengan cara yang fleksibel.

Sesuatu seperti ini:

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

Bahkan Anda dapat dengan mudah memasukkannya ke dalam modul dan mencampurnya ke dalam kelas ActiveRecord yang membutuhkannya, karena menggunakan table_name dan self itu tidak diimplementasikan dengan nama kelas tertentu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batas Kata Regex PostgreSQL?

  2. Cara membuat daftar semua database menggunakan PostgreSQL

  3. Tentang kegunaan indeks ekspresi

  4. Permintaan SQL untuk mendapatkan baris terbaru untuk setiap instance dari kunci yang diberikan

  5. Bagaimana cara menyimpan tanggal dengan tingkat presisi yang berbeda di postgres?