sql >> Database >  >> RDS >> PostgreSQL

Rails Console vindt gebruikers op reeks id's

Voor een array kun je een van deze gebruiken:

# 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

Als je toevallig een bereik gebruikt, kun je deze gebruiken:

# 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

Zoals @diego.greyrobot in een opmerking opmerkt, veroorzaakt een bereik een SQL BETWEEN-component, terwijl een array een SQL IN-component veroorzaakt.

Niet doen gebruik User.find_by_id() -- Er wordt slechts één record geretourneerd, ongeacht hoeveel ID's u doorgeeft.



  1. Hele DataTable in één keer in de database invoegen in plaats van rij voor rij?

  2. Vergelijking van full text zoekmachine - Lucene, Sphinx, Postgresql, MySQL?

  3. Een database-e-mailaccount (SSMS) verwijderen

  4. PSQLEException:ResultSet niet goed gepositioneerd, misschien moet je hierna bellen