Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Lotre php masalah masalah multi pemenang

saya pikir Anda telah memilih format penyimpanan yang salah untuk nomor yang Anda pilih. Pendekatan standar adalah dengan menggunakan nilai biner yang memiliki bit ke-N yang ditetapkan jika nomor N dipilih.

Perhatikan contoh ini:pengguna memilih angka "2 4 5 9 11". Menyetel bit yang sesuai ke 1 menghasilkan '10100011010' yang merupakan desimal 1306. Sekarang lotere memilih "4 7 9 12 13" yaitu '1100101001000' ==6472. Lakukan bitwise AND pada kedua nilai dan hitung jumlah bit yang diatur dalam hasil:

SELECT BIT_COUNT(1306 & 6472)

ini segera memberitahu kita bahwa pengguna memiliki 2 pilihan yang benar. Semudah itu Anda dapat memilih pemenang "penuh":

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

atau urutkan tiket berdasarkan jumlah pilihan yang benar

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. KIRI GABUNG hanya baris pertama

  2. Menggunakan SELECT INTO OUTFILE di MySQL

  3. Python Dari Awal:Buat Situs Web Dinamis

  4. Hapus baris X pertama dari database

  5. MySQL SELECT DISTINCT harus peka huruf besar-kecil?