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

Grup Hasil Acak MySQL Berdasarkan Pesanan Oleh

Kueri Anda bertentangan dengan standar sql karena Anda mencantumkan kolom dalam daftar pilih yang tidak Anda cantumkan dalam klausa grup menurut, juga merupakan subjek dari fungsi agregat, seperti count(). MySQL mengizinkan fungsi ini di bawah pengaturan mode sql tertentu.

Namun, meskipun fungsi ini diaktifkan, MySQL memiliki pembatasan pada data yang dipilih dari bidang non-agregat :

Jadi, daripada menggunakan group by, gunakan sorting dan klausa limit untuk membatasi output:

select * from job
    where type = 1
    order by rand()
    limit 1

Harap perhatikan juga bahwa metode pemilihan acak ini sangat intensif sumber daya, karena MySQL harus terlebih dahulu mengurutkan seluruh hasil tanpa menggunakan indeks apa pun. Ada cara lain untuk memilih data secara acak dari tabel tanpa menggunakan order by rand() .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tampilan MySQL dan penggunaan indeks

  2. Buat hibernate backquote semua nama tabel/kolom

  3. WordPress - Saya tidak bisa masuk - Ada yang salah dengan tabel wp_users

  4. Menjalankan Galera Cluster di Kubernetes

  5. Tidak dapat menyelesaikan nama tabel yang mendekati