मुझे लगता है कि आपने अपने चुने हुए नंबरों के लिए गलत भंडारण प्रारूप चुना है। मानक दृष्टिकोण बाइनरी मानों का उपयोग करना है जिसमें एन-वें बिट सेट होता है यदि संख्या एन चुना जाता है।
इस उदाहरण पर विचार करें:उपयोगकर्ता "2 4 5 9 11" नंबर चुनता है। संबंधित बिट्स को 1 पर सेट करने से '10100011010' मिलता है जो दशमलव 1306 है। अब लॉटरी "4 7 9 12 13" चुनती है जो '1100101001000' ==6472 है। थोड़ा सा और दोनों मूल्यों पर प्रदर्शन करें और बिट्स की संख्या की गणना करें परिणाम:
SELECT BIT_COUNT(1306 & 6472)
यह तुरंत हमें बताता है कि उपयोगकर्ता के पास 2 सही चयन हैं। जितना आसान आप "पूर्ण" विजेताओं का चयन कर सकते हैं:
SELECT * FROM tickets WHERE BIT_COUNT(tickets.pick & lotto.pick) = 5
या टिकटों को सही चयनों की संख्या के अनुसार क्रमित करें
SELECT * FROM tickets ORDER BY BIT_COUNT(tickets.pick & lotto.pick) DESC