PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Ruby on Rails :Existe-t-il un moyen d'extraire des éléments de la base de données et de les renvoyer dans un ordre spécifié ?

Vous pouvez faire en sorte que la base de données fasse le tri et éviter plusieurs index appels, il suffit de se rappeler qu'un SQL ORDER BY ordonne par une expression , pas une colonne :

whens = item_ids.collect.with_index { |id, i| "when #{id} then #{i}" }.join(' ')
items = Item.where(:id => item_ids).order("case id #{whens} end")