जहां तक एक कॉलम नाम को MySQL (शीर्षक में प्रश्न) में पैरामीटर के रूप में पास करना है, यह SQL कथन में संभव नहीं है। पहचानकर्ता SQL कथन में (उदा. तालिका नाम और स्तंभ नाम) SQL पाठ का भाग होना चाहिए। उन्हें बाइंड प्लेसहोल्डर के साथ पास नहीं किया जा सकता है।
IN
तुलना ऑपरेटर माता-पिता में संलग्न मूल्यों की एक सूची, या माता-पिता में संलग्न एक चयन क्वेरी की अपेक्षा करता है जो मूल्यों का एक सेट देता है।
यह स्पष्ट नहीं है कि आप क्या करने का प्रयास कर रहे हैं।
मुझे संदेह है कि template_allowed_parent_templates
तालिका में एक स्तंभ है, और इसमें अल्पविराम से अलग किए गए मानों की सूची है। (कंपकंपी।)
मुझे संदेह है कि आप MySQL FIND_IN_SET
की तलाश कर रहे होंगे स्ट्रिंग फ़ंक्शन, जो किसी विशेष मान के लिए अल्पविराम से अलग की गई सूची को "खोज" करेगा।
एक साधारण प्रदर्शन के रूप में:
SELECT FIND_IN_SET('5', '2,3,5,7')
, FIND_IN_SET('4', '2,3,5,7')
निर्दिष्ट मान "पाया" होने पर फ़ंक्शन एक सकारात्मक पूर्णांक देता है। आप उस फ़ंक्शन का उपयोग विधेय में कर सकते हैं, उदा.
WHERE FIND_IN_SET(id,template_allowed_parent_templates)
या
WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)
(यह काम करता है क्योंकि MySQL में एक सकारात्मक पूर्णांक का मूल्यांकन बूलियन संदर्भ में TRUE के रूप में किया जाता है।)
मैं केवल अनुमान लगा रहा हूं कि आप क्या हासिल करने की कोशिश कर रहे हैं।