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

Jak náhodně seřadit výsledky dotazu a vybrat náhodné řádky. (MySQL)

Pokud vám nevadí obětovat složitost operací vkládání/aktualizace/odstranění kvůli rychlosti na výběru, můžete vždy přidat pořadové číslo a ujistit se, že je zachováno při vkládání/aktualizaci/mazání, pak kdykoli provedete výběr, jednoduše vyberte na jedno nebo více náhodných čísel z tohoto rozsahu. Pokud je sloupec "sekvence" indexován, myslím, že je to asi tak rychlé, jak to jen dosáhnete.

Alternativou je „přehazování“. Přidejte sloupec sekvence, vložte do tohoto sloupce náhodné hodnoty a kdykoli vyberete záznamy, seřaďte je podle sloupce sekvence a aktualizujte vybrané sekvence záznamů na nové náhodné hodnoty. Aktualizace by měla ovlivnit pouze záznamy, které jste načetli, takže by neměla být příliš nákladná... ale možná by stálo za to provést nějaké testy s vaší datovou sadou.

To může být docela špatné, ale přesto to řeknu... je někdy potřeba zobrazovat „náhodná“ data? pokud se pokoušíte zobrazit náhodné záznamy, možná děláte něco špatně.

Přemýšlejte o Amazonu ... zobrazují náhodné produkty nebo zobrazují oblíbené produkty a „věci, které si jiní lidé koupili, když se na to dívali“. Poskytuje vám SO seznam náhodných otázek napravo odtud nebo seznam souvisejících? Jen trochu k zamyšlení.



  1. Jak odstranit duplikáty ze seznamu odděleného čárkami pomocí regexp_replace v Oracle?

  2. obnovit zálohu mysql

  3. Postgresql vs. MySQL:jak jsou jejich datové velikosti ve srovnání s ostatními?

  4. Příklady DATEDIFF() v SQL Server