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

La console Rails trouve des utilisateurs par tableau d'identifiants

Pour un tableau, vous pouvez utiliser l'un de ces éléments :

# Will raise exception if any value not found
User.find( [1,3,5] )

# Will not raise an exception
User.find_all_by_id( [1,3,5] ) # Rails 3
User.where(id: [1,3,5])        # Rails 4

Si vous utilisez une plage, vous pouvez utiliser celles-ci :

# Will raise exception if any value not found
User.find((1..4).to_a)   #same as User.find([1,2,3,4])

# Will not raise an exception
User.find_all_by_id(1..4)  # Rails 3
User.where(id: 1..4)       # Rails 4

Comme le note @diego.greyrobot dans un commentaire, une plage provoque une clause SQL BETWEEN, alors qu'un tableau provoque une clause SQL IN.

Ne pas utilisez User.find_by_id() -- Il ne renverra qu'un seul enregistrement, quel que soit le nombre d'identifiants que vous transmettez.