Váš dotaz je v rozporu se standardem SQL, protože ve výběrovém seznamu uvádíte sloupce, které neuvádíte ve skupině podle klauzule ani nejsou předmětem agregačních funkcí, jako je count(). MySQL umožňuje tuto funkci při určitých nastaveních režimu SQL.
I když je tato funkce povolena, má MySQL omezení data vybraná z neagregovaných polí :
Takže místo použití skupiny podle použijte řazení a klauzuli limit k omezení výstupu:
select * from job
where type = 1
order by rand()
limit 1
Pls také poznamenejte, že tato metoda náhodného výběru je velmi náročná na zdroje, protože MySQL musí nejprve seřadit celou sadu výsledků bez použití jakéhokoli indexu. Existují další způsoby, jak náhodně vybrat data z tabulky bez použití order by rand()
.