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