sql >> Database >  >> RDS >> Mysql

MySQL:selecteer willekeurige invoer, maar gewicht naar bepaalde invoer

Deze man stelt dezelfde vraag. Hij zegt hetzelfde als Frank, maar de wegingen kloppen niet en in de commentaren stelt iemand voor om ORDER BY -LOG(1.0 - RAND()) / Multiplier te gebruiken , wat bij mijn testen vrijwel perfecte resultaten opleverde.

(Als er wiskundigen zijn die willen uitleggen waarom dit correct is, licht me dan alstublieft in! Maar het werkt.)

Het nadeel zou zijn dat je de weging niet op 0 kunt zetten om een ​​optie tijdelijk uit te schakelen, omdat je dan zou delen door nul. Maar je zou het er altijd uit kunnen filteren met een WHERE Multiplier > 0 .



  1. ORD() Voorbeelden – MySQL

  2. Hoe kan ik een database onder git (versiebeheer) plaatsen?

  3. Query met LEFT JOIN retourneert geen rijen voor telling van 0

  4. Inleiding tot native dynamische SQL in Oracle Database