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

SQL Náhodné řádky ve velké tabulce (s klauzulí where)

Rád bych uvedl konkrétní odpověď, ale potřeboval bych pomoc, abych pochopil váš myšlenkový proces...

Začněte tím, že napíšete:

Ale pak pokračujte v psaní:

Pro mě tato druhá specifikace nedává smysl ve světle první poznámky.

Imho, opravdu chcete, aby uživatelé měli stejné množství příležitostí hlasovat pro každé auto. Nebo přesněji, hlasovat pro každé auto ve srovnání s ostatními auty.

Pokud předpokládáte, že proměnné (auta) jsou nezávislé, pak musíte spíše spočítat, kolikrát se volba objevila, než kolikrát pro ni byla hlasována, a podle toho upravit svůj rozhodovací proces. Je to matematický problém, není tak ošklivý a pak se dá přeložit do jazyka SQL k lepšímu i horšímu – troufl bych si, že to bude pravděpodobně horší.

Pokud předpokládáte, jako já, že nejsou nezávislé, musíte také zohlednit korelace - a uložit, kolikrát k sobě přišly. Protože, no, je nekonečně malá šance, že nedáte přednost tomuto Mercedesu než tomu Tatu, Xinkai nebo AvtoVAZu. Ale vzhledem k volbě mezi stejným Mercedesem, BMW, Porsche a Ferrari nemusí být rozhodnutí tak jednoznačné.

Jinými slovy, vaše specifikace vůbec neodpovídá na problém, jak jste jej prezentovali.

Momentálně žádám o souhlas s odpovědí zveřejněnou před dvěma hodinami:vyberte je opravdu náhodně a budete spokojeni bez dalšího kódu...

Jako vedlejší poznámka, pokud vaše ID opravdu nemají žádné mezery, vygenerujte čtyři ID v php nebo cokoli a načtěte je pomocí in() tvrzení. Nebudete efektivnější než to.



  1. Záporný posun limitu v mysql

  2. Nainstalujte mysqlclient pro Django Python na Mac OS X Sierra

  3. PHP OOP programování MySQL

  4. Jak vytvořit vztah v MySQL Workbench