sql >> Database teknologi >  >> RDS >> Mysql

Php lotteri problemer med flere vindere

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


  1. Sådan rettes "Kun ét udtryk kan angives i valglisten ..." i SQL Server

  2. Sådan begrænser du sql-udførelsestiden

  3. Hvordan indstiller jeg et standard standardbillede (no_pic.gif) php?

  4. php mysql grupper efter dato med åååå-mm-dd format