मैं एक बड़ी mysql डेटाबेस से क्वेरी कर रहा हूँ के साथ ही विशेषाधिकार पढ़ा है, और मैं एक चर, 'foo' के लिए कुछ धीमी गति से क्वेरी परिणाम निर्धारित करना चाहते हैं, तो मैं उन्हें अन्य प्रश्नों में फिर से उपयोग कर सकते हैं ।असाइन क्वेरी परिणाम
मूल रूप से, मैं एक बोझिल सबक्वेरी के लिए एक चर करना चाहते हैं, तो मैं यह हर बार जब मैं इसका उपयोग करना चाहते चलाने की लागत बिना इसे पुन: उपयोग कर सकते हैं।
जब मैं दर्ज करें:
set @foo := (select *
from table1 join table2
where bar = 0
group by id);
मैं मिलता है: त्रुटि 1241 (21000): ओपेरैंड 1 कॉलम (रों) को शामिल करना चाहिए और अगर मैं 1 कॉलम को रोकते हैं, तो त्रुटि 1242 (21000): Subquery अधिक रिटर्न 1 से पंक्ति
वहाँ किसी सरणी या एक चर में एक टेबल स्टोर करने के लिए एक तरीका है? मेरे पास अस्थायी तालिकाओं को बनाने के लिए विशेषाधिकार नहीं हैं।
धन्यवाद, लेकिन अब मैं मिलता है: त्रुटि 1241 (21000): ओपेरैंड 1 कॉलम (रों) शामिल करना चाहिए। जब मैं इसे 1 कॉलम तक सीमित करता हूं, तो मुझे मिलता है: सबक्वायरी 1 से अधिक पंक्ति देता है। – 5un5
हां क्योंकि '@ foo' केवल एक मान स्टोर कर सकता है। इसलिए आपके 'चयन' कथन में, आपको निश्चित रूप से पता होना चाहिए कि यह एकल मान वापस करेगा। –
आह, मैं देखता हूं। धन्यवाद। क्या किसी तालिका को स्टोर करने या एक चर में क्वेरी परिणामों के सरणी के लायक किराए पर लेने का कोई तरीका है? – 5un5