sql >> Database teknologi >  >> RDS >> PostgreSQL

Rails Console finder brugere efter række id'er

For et array kan du bruge en af ​​disse:

# 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

Hvis du tilfældigvis bruger en rækkevidde, kan du bruge disse:

# 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

Som @diego.greyrobot bemærker i en kommentar, forårsager et interval en SQL BETWEEN-sætning, hvorimod et array forårsager en SQL IN-sætning.

Gør det ikke brug User.find_by_id() -- Det vil kun returnere én post, uanset hvor mange ID'er du sender ind.



  1. Sådan sikrer du MySQL/MariaDB-servere

  2. INDSÆT og OPDATERE en post ved hjælp af markører i oracle

  3. Sådan bruger du _COUNT i BaseColumns

  4. Syntaksfejl for forberedtStatement