Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

cara memilih catatan unik acak pada setiap eksekusi SQL Query

Karena Anda dapat meneruskan parameter seed ke RAND() fungsi, Anda dapat "memberi paginasi" hasil acak dengan menghasilkan benih sebelum halaman pertama.

Kode contoh:Untuk halaman pertama (bervariasi menurut bahasa):

int seed = Math.abs(new Random().nextInt());

Kueri SQL:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;

Simpan benih di suatu tempat (untuk aplikasi berbasis web Anda dapat menggunakan parameter atau sesi url). Untuk halaman selanjutnya:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;

Catatan:Mengurutkan berdasarkan RAND() adalah operasi yang berat, Anda mungkin lebih baik menyimpan kolom yang diindeks dengan Kode Hash dari url, kemudian menggunakan modul berbasis atau fungsi acak lainnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. apakah MySql bagus untuk database besar?

  2. ekstensi java.sql.Connection untuk SSH

  3. Kembalikan jumlah baris yang terpengaruh oleh pernyataan SQL UPDATE di Java

  4. MySQL:Bagaimana cara saya bergabung dengan tabel yang sama beberapa kali?

  5. Array dalam Kueri SQL?