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

SQL Baris acak dalam tabel besar (dengan klausa where)

Saya ingin memberikan jawaban yang spesifik, tetapi saya membutuhkan bantuan untuk memahami proses berpikir Anda...

Anda mulai dengan menulis:

Tapi kemudian Anda terus menulis:

Bagi saya, spesifikasi terakhir tidak masuk akal mengingat komentar pertama.

Imho, yang sebenarnya Anda inginkan adalah agar pengguna memiliki jumlah kesempatan yang sama untuk memilih di setiap mobil. Atau lebih tepatnya, untuk memilih setiap mobil dibandingkan dengan mobil lainnya.

Jika Anda berasumsi bahwa variabel (mobil) independen, maka Anda perlu menghitung berapa kali pilihan muncul, bukan berapa kali dipilih, dan sesuaikan proses keputusan Anda. Ini adalah masalah matematika, tidak terlalu jelek, dan kemudian dapat diterjemahkan ke dalam SQL untuk lebih baik atau lebih buruk -- saya berani menduga bahwa itu mungkin akan lebih buruk.

Jika Anda berasumsi, seperti saya, bahwa mereka tidak independen, Anda juga perlu memperhitungkan korelasi -- dan menyimpan berapa kali mereka muncul satu sama lain juga. Karena, yah, ada kemungkinan sangat tipis bahwa Anda tidak akan memilih Mercedes ini daripada Tata itu, Xinkai itu atau AvtoVAZ itu. Namun jika diberi pilihan antara Mercedes, BMW, Porsche, dan Ferrari yang sama, keputusannya mungkin tidak terlalu jelas.

Dengan kata lain, spesifikasi Anda tidak menjawab masalah saat Anda mempresentasikannya sama sekali.

Saat ini saya memohon untuk setuju dengan jawaban yang diposting dua jam yang lalu:pilih mereka secara acak, dan Anda akan puas tanpa kode tambahan...

Sebagai catatan tambahan, jika id Anda benar-benar tidak memiliki celah, buat empat id di php atau apa pun dan ambil menggunakan in() penyataan. Anda tidak akan menjadi lebih efisien dari itu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL TIDAK DI dari kolom lain di tabel yang sama

  2. Instalasi MySQL

  3. MySQL Memotong hasil saat menggunakan Group_Concat dan Concat

  4. Dapatkan interval waktu di mysql

  5. Kesalahan Sintaks MySQL. Tidak bisa menyelesaikannya