sql >> Databasteknik >  >> RDS >> Mysql

MySQL slumpmässig resultatgrupp efter beställning efter

Din fråga strider mot sql-standarden eftersom du listar kolumner i urvalslistan som du inte listar i group by-satsen, och inte heller är föremål för en aggregerad funktion, såsom count(). MySQL tillåter denna funktionalitet under vissa sql-lägesinställningar.

Men även om denna funktionalitet aktiverade MySQL har restriktioner på data som väljs från de icke-aggregerade fälten :

Så istället för att använda group by, använd sortering och limit-satsen för att begränsa utdata:

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

Observera också att denna slumpmässiga urvalsmetod är mycket resurskrävande, eftersom MySQL först måste sortera hela resultatuppsättningen utan att använda något index. Det finns andra sätt att slumpmässigt välja data från en tabell utan att använda order by rand() .



  1. Hur får jag min postgresql-databas att använda en skiftlägesokänslig sortering?

  2. Hur skickar man värden till IN-operatören dynamiskt?

  3. Topptrender inom databashantering

  4. 'IF' i 'SELECT'-satsen - välj utdatavärde baserat på kolumnvärden