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

Vyberte náhodný řádek z MySQL (s pravděpodobností)

Pokud cur_odds se mění jen zřídka, můžete implementovat následující algoritmus:

1) Vytvořte další sloupec prob_sum , pro které

2) Vygenerujte náhodné číslo od 0 do 1:

3) Najděte první řádek, pro který je prob_sum > rnd (pokud vytvoříte index BTREE na prob_sum , dotaz by měl fungovat mnohem rychleji):



  1. Proč ActiveRecord cancel_all trvá tak dlouho?

  2. Velmi pomalé spouštění aplikace Spring Boot

  3. MySQL spoušť nefunguje, jednoduchá syntaxe, nic složitého

  4. Jak získat první a poslední den předchozího měsíce (s časovým razítkem) na SQL Server