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

MYSQL SELECT acak di meja besar ORDER BY SCORE

jadi untuk mendapatkan sesuatu seperti ini saya akan menggunakan subquery.. dengan begitu Anda hanya meletakkan RAND() pada kueri luar yang akan jauh lebih sedikit membebani.

Dari apa yang saya pahami dari pertanyaan Anda, Anda ingin 200 laki-laki dari tabel dengan skor tertinggi ... jadi itu akan menjadi seperti ini:

SELECT * 
FROM table_name
WHERE age = 'male'
ORDER BY score DESC
LIMIT 200

sekarang untuk mengacak 5 hasil akan menjadi seperti ini.

SELECT id, score, name, age, sex
FROM
(   SELECT * 
    FROM table_name
    WHERE age = 'male'
    ORDER BY score DESC
    LIMIT 200
) t -- could also be written `AS t` or anything else you would call it
ORDER BY RAND()
LIMIT 5


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa cara terbaik untuk menangani koneksi sql di server http (Flask) tanpa ORM dengan Python?

  2. Hapus klausa DEFINER dari MySQL Dumps

  3. Variabel $_POST tidak berfungsi dengan $_FILES dan multipart/form-data

  4. mencocokkan kata-kata dengan tanda aksen, umlaut, dll. mysql/php

  5. SQL Pilih data dari tiga tabel terkait