PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Rails:Memanggil .limit(5) mengubah urutan hasil

Misalkan Anda mencoba mengurutkan array-of-array ini dengan elemen pertama:

[
  [ 1, 1 ],
  [ 1, 2 ],
  [ 1, 3 ]
]

Keduanya (dan beberapa lainnya) adalah hasil yang valid karena Anda memiliki kunci pengurutan duplikat:

[ [1,1], [1,2], [1,3] ]
[ [1,3], [1,1], [1,2] ]

Anda mengalami masalah yang sama di dalam database. Anda mengatakan bahwa:

Jadi kelima nilai tersebut dapat muncul dalam urutan apa pun dan tetap memenuhi ketentuan ORDER BY yang Anda tentukan. Mereka bahkan tidak harus keluar dari database dalam urutan yang sama dalam dua eksekusi kueri yang sama.

Jika Anda ingin pengurutan yang konsisten, Anda perlu memastikan bahwa setiap baris dalam kumpulan hasil Anda memiliki kunci pengurutan yang unik sehingga ikatan akan terputus secara konsisten. Ini adalah ActiveRecord sehingga Anda akan memiliki id yang unik tersedia sehingga Anda dapat menggunakannya untuk memutuskan ikatan pemesanan Anda:

result = Rom::Leaderboard.order('pvp_vs desc, win_percent desc, id').limit(200) 
# --------------------------------------------------------------^^

Itu akan memberi Anda urutan yang jelas dan unik.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat postgresSQL berfungsi di komputer windows 7 dengan Django?

  2. Dapatkan rentang tanggal berurutan yang berbeda dari rentang tanggal yang tumpang tindih

  3. Bagaimana cara melacak kemajuan kueri di PostgreSQL?

  4. Kurangi Hari dari Tanggal di PostgreSQL

  5. Kesalahan Postgres:Lebih dari satu baris dikembalikan oleh subquery yang digunakan sebagai ekspresi