Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

'फ़ील्ड सूची' में अज्ञात कॉलम जब तैयार स्टेटमेंट का प्लेसहोल्डर सबक्वेरी में होता है

आपके नवीनतम संपादन ने प्रश्न को बहुत स्पष्ट कर दिया है, इसलिए मैं एक उत्तर का प्रयास करूंगा:इस अंतर का कारण प्लेसहोल्डर है।

दस्तावेज़ के रूप में यहां , प्लेसहोल्डर्स का उपयोग केवल क्वेरी में कुछ निश्चित स्थानों पर ही किया जा सकता है। विशेष रूप से:

अब आपने देखा होगा कि SELECT ? as x ठीक तैयार करता है, लेकिन नहीं SELECT nr.x FROM (SELECT ? AS x) AS nr . ऐसा क्यों है? वैसे इसे PHP के दस्तावेज़ पर एक अनाम लेखक द्वारा सबसे अच्छी तरह से समझाया गया है , तो मुझे कॉपी/पेस्ट करने दें:

तो सीधे शब्दों में कहें:क्योंकि आप FROM . में एक सबक्वेरी में प्लेसहोल्डर का उपयोग कर रहे हैं खंड, MySQL क्वेरी के निष्पादन योजना की गणना नहीं कर सकता है।

दूसरे शब्दों में, चूंकि आपकी क्वेरी हमेशा बदलती रहेगी, इसके लिए कोई "टेम्पलेट" तैयार नहीं किया जा सकता है।

इसलिए यदि आप वास्तव में इस क्वेरी का उपयोग करना चाहते हैं, तो आपको एक सामान्य (गैर-तैयार) क्वेरी का उपयोग करने की आवश्यकता है, या पीडीओ के नकली तैयार बयानों को वापस चालू करना होगा।

कहा जा रहा है, कृपया, टिप्पणी अनुभाग में दिए गए विभिन्न विकल्पों पर विचार करें। आप जो हासिल करने की कोशिश कर रहे हैं उसके लिए बहुत बेहतर समाधान हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अनुरोध URL में तालिका का नाम और फ़ील्ड नाम उजागर करना

  2. चयन का उपयोग करते समय MySQL बिट फ़ील्ड मान नहीं देख सकता

  3. MySQL अद्यतन मामला कब/फिर/अन्यथा

  4. MySQL - अलग-अलग स्थितियों के साथ दो चीजें गिनना

  5. MySQL UDF sys_exec () काम नहीं करता है