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