Din forespørgsel er imod sql-standarden, fordi du angiver kolonner i select-listen, som du ikke angiver i group by-sætningen, og som heller ikke er genstand for en aggregeret funktion, såsom count(). MySQL tillader denne funktionalitet under visse sql-tilstandsindstillinger.
Men selvom denne funktionalitet aktiverede MySQL har begrænsninger på de data, der er valgt fra de ikke-aggregerede felter :
Så i stedet for at bruge group by, brug sortering og limit-sætningen for at begrænse output:
select * from job
where type = 1
order by rand()
limit 1
Bemærk også, at denne tilfældige udvælgelsesmetode er meget ressourcekrævende, da MySQL først skal sortere hele resultatsættet uden at bruge noget indeks. Der er andre måder at tilfældigt vælge data fra en tabel uden at bruge order by rand()
.