PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Rails Console findet Benutzer anhand von ID-Arrays

Für ein Array können Sie eines davon verwenden:

# 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

Wenn Sie zufällig einen Bereich verwenden, können Sie diese verwenden:

# 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

Wie @diego.greyrobot in einem Kommentar feststellt, verursacht ein Bereich eine SQL BETWEEN-Klausel, während ein Array eine SQL IN-Klausel verursacht.

Nicht Verwenden Sie User.find_by_id() -- Es wird nur ein Datensatz zurückgegeben, egal wie viele IDs Sie eingeben.