sql >> Databáze >  >> RDS >> Mysql

Náhodná skupina výsledků MySQL podle pořadí

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() .



  1. Integrace Java MySQL s ArrayLists

  2. Nápověda k dotazu SQL - mají dvě podmínky kde v podmínce spojení

  3. MySQL:Jak získat délku textu ve sloupci

  4. Proč uzavíráme výsledek v Mysqli