अनिवार्य रूप से मैं इस तरह से कुछ करने की जरूरत है की अद्यतन में चयन नेस्ट .... यह सिर्फ एक उदाहरण है ... लेकिन पहले क्वेरी के सिंटैक्स MySQLmysql एक ही मेज
मेंupdate people set prize = ''
where prize = 'Gold' and class = (select class from people where id = person_id);
update people set prize = 'Gold' where id = <id>;
काम नहीं करता है
किसी भी वर्ग में केवल एक व्यक्ति के पास गोल्ड इनाम हो सकता है। मैं केवल उस व्यक्ति के व्यक्ति_आईडी को जानता हूं जो स्वर्ण पुरस्कार प्राप्त करता है।
मैं पहली पंक्ति में person_id के समान कक्षा में किसी भी पिछले स्वर्ण पुरस्कार विजेताओं को खाली करने की कोशिश कर रहा हूं। फिर दूसरे गोल्ड विजेता को दूसरे में सेट करें।
मेरा मानना है कि मुझे किसी प्रकार के आंतरिक शामिल होने की आवश्यकता है, लेकिन मुझे इस पर 100% निश्चित नहीं है।
यदि मैं एक प्रश्न में पूरी तरह से कर सकता हूं तो भी बेहतर होगा!
कोई भी सलाह दे सकता है?
धन्यवाद :)
इस सवाल में तैनात रूप में एक ही नहीं करता है। आप कक्षा में प्रत्येक पुरस्कार को "गोल्ड" या "सिल्वर" के साथ ओवरराइड कर रहे हैं, जबकि उपर्युक्त क्वेरी केवल "गोल्ड" पुरस्कार हटाती है और एक नया सेट करती है। उदाहरण: क्या होगा अगर लोगों में से एक का "कांस्य" मूल्य था? – VVS
@ डेविड हिम्पोहल: अच्छा बिंदु, आप क्वेरी के अंत में "WHERE class = 'Gold' या id = @lucky" को जोड़कर ऐसा कर सकते हैं। – Andomar
@ डेविड: @ ओप की क्वेरी वर्ग के भीतर प्रत्येक व्यक्ति के लिए पुरस्कार '' सेट करती है। मैंने सिर्फ पठनीयता – Quassnoi