0 के अंक के चर सेट के आधार पर MySQL रिकॉर्ड्स पुनर्प्राप्त करना मान लें कि मेरे पास एक MySQL तालिका है, people
। प्रत्येक रिकॉर्ड में favourite_colour
, country
, और age_group
के बीच विभिन्न गुण शामिल हैं।तुलना
मैं क्या करना चाहता हूं इस तालिका से रिकॉर्ड को विशिष्ट पैरामीटर के सेट पर समानता से पुनर्प्राप्त करना है। "लाल", "संयुक्त राज्य" और "18-25" को देखते हुए, उदाहरण के लिए, सर्वोत्तम परिणाम उन रिकॉर्ड होंगे जो तीनों से मेल खाते हैं। ये 100% मैच होंगे।
हालांकि, मैं दो पैरामीटर (66% मैच), या किसी भी पैरामीटर (33% मैच) के किसी भी संयोजन से मेल खाने वाले रिकॉर्ड पुनर्प्राप्त करना चाहूंगा। इसके अलावा, मैं तुलना के अतिरिक्त बिंदुओं को परिभाषित करने में सक्षम होना चाहता हूं (उदा। underwear_type
, marital_status
, आदि)।
क्या इस समस्या का अपेक्षाकृत कुशल समाधान है?
यह काफी चालाक है! –
यह वास्तव में एक बहुत अच्छा विचार है। परिणामों में से एक को गुणा करके वजन घटाना भी आसान होगा। –
यह वास्तव में एक अच्छा समाधान है। कुछ नोट्स/प्रश्न: जो मैं बता सकता हूं, एसक्यूएल कॉलम उपनाम (यानी match_score) को WHERE क्लॉज में अनुमति नहीं देता है। साथ ही, मुझे नहीं लगता कि एसयूएम() व्यवहार करता है क्योंकि आपकी क्वेरी सुझाव देगी (यह एकाधिक तर्क स्वीकार नहीं करती है); MySQL के दस्तावेज़ से संकेत मिलता है कि SUM() केवल एक समूह द्वारा समेकन फ़ंक्शन है। WHERE क्लॉज को हटाकर, और अतिरिक्त ऑपरेटर के साथ योग को प्रतिस्थापित करने से फ़ंक्शन एक आकर्षण की तरह काम करता है। –