sql >> データベース >  >> RDS >> PostgreSQL

RailsActiveRecordを使用したINリストのPostgresORDERBY値

    リンクされた回答は、必要なものを正確に提供します。柔軟な方法で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
    

    実際、table_nameを使用しているため、これをモジュールに簡単に入れて、それを必要とするActiveRecordクラスにミックスインすることができます。 およびself 特定のクラス名では実装されていません。



    1. SQLServerから別のデータリポジトリへのリアルタイムの単方向同期

    2. MySQLでJSON列をクエリする方法

    3. 請求書テーブルのデザイン

    4. mysqlの3つのテーブルとの内部結合