Jeg tror, du har valgt de forkerte lagringsformater til dine valgte numre. Standardtilgangen er at bruge binære værdier, som har N-te bit sat, hvis tallet N er valgt.
Overvej dette eksempel:brugeren vælger tallene "2 4 5 9 11". Indstilling af tilsvarende bits til 1 giver '10100011010', som er decimal 1306. Nu vælger lotteriet "4 7 9 12 13", som er '1100101001000' ==6472. Udfør en bitvis OG på begge værdier og indstil antallet af bits resultat:
SELECT BIT_COUNT(1306 & 6472)
dette fortæller os straks, at brugeren har 2 rigtige valg. Lige så nemt kan du vælge "fulde" vindere:
SELECT * FROM tickets WHERE BIT_COUNT(tickets.pick & lotto.pick) = 5
eller sorter billetterne efter antallet af korrekte valg
SELECT * FROM tickets ORDER BY BIT_COUNT(tickets.pick & lotto.pick) DESC