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

Postgres ORDER BY các giá trị trong danh sách IN sử dụng Rails Active Record

Liên kết đến câu trả lời của bạn cung cấp chính xác những gì bạn cần, bạn chỉ cần viết mã nó bằng Ruby một cách linh hoạt.

Một cái gì đó như thế này:

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

Trên thực tế, bạn có thể dễ dàng đưa nó vào một mô-đun và trộn nó vào bất kỳ lớp ActiveRecord nào cần nó, vì nó sử dụng table_nameself nó không được triển khai với bất kỳ tên lớp cụ thể nào.



  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 xem con trỏ cơ bản truy vấn đang hoạt động

  2. Hệ số lấp đầy cho một chỉ số tuần tự là PK

  3. PostgreSQL, CHỌN từ id tối đa

  4. Đo lường thống kê điểm kiểm tra PostgreSQL

  5. Có thể tạo bảng với tên biến trong PostgreSQL không?