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

ORDER BY RAND() se zdá být méně než náhodné

RAND() se provede pouze jednou na dotaz. Můžete to ověřit pohledem na sadu výsledků.

Pokud se pokoušíte získat náhodné pořadí, měli byste použít buď NEWID() nebo CHECKSUM(NEWID()) .

WITH T AS ( -- example using RAND()
  SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, RAND()
FROM T;

WITH T AS ( -- example using just NEWID()
  SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, NEWID()
FROM T;

WITH T AS ( -- example getting the CHECKSUM() of NEWID()
  SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, CHECKSUM(NEWID())
FROM T;


  1. Jak mohu vytvořit a načíst druhou databázi v ddev?

  2. Vytvoření modelu Entity Framework zahrnuje více databází

  3. Chyba databáze WordPress Server MySQL zmizel kvůli dotazu

  4. Vytvořte a použijte dočasnou tabulku ve vnořených dotazech