sql >> Databasteknik >  >> RDS >> Mysql

MYSQL SELECT slumpmässigt på stort bord ORDER EFTER BETYG

så för att få något sånt här skulle jag använda en underfråga .. på så sätt sätter du bara RAND() på den yttre frågan vilket kommer att vara mycket mindre belastande.

Vad jag förstod från din fråga vill du ha 200 hanar från tabellen med högst poäng... så det skulle vara ungefär så här:

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

nu för att slumpa ihop 5 resultat skulle det vara ungefär så här.

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. Allvarligt fel:[] operatör stöds inte för strängar

  2. substr fungerar inte bra med utf8

  3. Mysql räknar instanser av delsträng, sortera sedan efter

  4. CTE Rekursion för att få trädhierarki