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

Cara memesan hasil kueri secara acak &memilih baris acak. (MySQL)

Jika Anda tidak keberatan mengorbankan kerumitan pada operasi penyisipan/pembaruan/penghapusan untuk kecepatan pada pemilihan, Anda selalu dapat menambahkan nomor urut dan memastikan nomor tersebut dipertahankan pada penyisipan/pembaruan/penghapusan, maka setiap kali Anda melakukan pemilihan, cukup pilih pada satu atau lebih nomor acak dari dalam kisaran ini. Jika kolom "urutan" diindeks, saya rasa itu akan secepat yang Anda dapatkan.

Alternatifnya adalah "mengocok". Tambahkan kolom urutan, sisipkan nilai acak ke dalam kolom ini, dan setiap kali Anda memilih catatan, urutkan menurut kolom urutan dan perbarui urutan catatan yang dipilih ke nilai acak baru. Pembaruan seharusnya hanya memengaruhi catatan yang telah Anda ambil, jadi seharusnya tidak terlalu mahal ... tetapi mungkin ada baiknya menjalankan beberapa pengujian terhadap kumpulan data Anda.

Ini mungkin hal yang cukup jahat untuk dikatakan, tetapi saya akan tetap mengatakannya ... apakah ada kebutuhan untuk menampilkan data 'acak'? jika Anda mencoba menampilkan catatan acak, Anda mungkin melakukan sesuatu yang salah.

Pikirkan tentang Amazon ... apakah mereka menampilkan produk acak, atau apakah mereka menampilkan yang populer, dan 'barang yang dibeli orang lain ketika mereka melihat ini'. Apakah SO memberi Anda daftar pertanyaan acak di sebelah kanan sini, atau daftar pertanyaan terkait? Hanya beberapa bahan untuk dipikirkan.



  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 menyinkronkan dua tabel database MySQL yang berbeda pada mesin yang sama?

  2. Secara selektif menghapus sebagian besar catatan duplikat dari MySQL

  3. Cari nomor telepon di database mengabaikan karakter khusus

  4. Regexp MySQL pada Indeks

  5. SQL:Bagaimana cara menjaga urutan baris dengan DISTINCT?