sql >> Database >  >> RDS >> Mysql

PHP-loterij geeft problemen met meerdere winnaars

ik denk dat je de verkeerde opslagformaten hebt gekozen voor je gekozen nummers. De standaardbenadering is om binaire waarden te gebruiken die een N-de bit hebben als het getal N wordt gekozen.

Beschouw dit voorbeeld:gebruiker kiest getallen "2 4 5 9 11". Het instellen van corresponderende bits op 1 geeft '10100011010' wat decimaal 1306 is. Nu kiest de loterij '4 7 9 12 13' wat '1100101001000' ==6472 is. Voer een bitsgewijze EN uit op beide waarden en tel het aantal bits dat is ingesteld in de resultaat:

SELECT BIT_COUNT(1306 & 6472)

dit vertelt ons meteen dat de gebruiker 2 juiste keuzes heeft. Net zo eenvoudig kunt u "volledige" winnaars selecteren:

SELECT * FROM tickets WHERE BIT_COUNT(tickets.pick & lotto.pick) = 5

of sorteer de tickets op het aantal juiste keuzes

SELECT * FROM tickets ORDER BY BIT_COUNT(tickets.pick & lotto.pick) DESC


  1. Waarom selecteren sommige mysql-verbindingen oude gegevens in de mysql-database na een delete + insert?

  2. mysql> databasetest maken; ERROR 1006 (HY000):Kan database 'test' niet maken (errno:2)

  3. Gegevens invoegen in MySQL vanuit een multidimensionale array in php

  4. Oracle-databaseverbinding in web.config asp.net