मैं प्रदर्शन कारणsqlalchemy में एक कस्टम क्वेरी में पैरामीटर को सूची कैसे जोड़ सकता हूं?
sql_tmpl = """delete from Data where id_data in (:iddata) """
params = {
'iddata':[1, 2,3 4],
}
# session is a session object from sqlalchemy
self.session.execute(text(sql_tmpl), params)
हालांकि मैं एक अपवाद
NotSupportedError: (NotSupportedError) ('Python type list not supported. param=1', 'HY097')
कोई वैकल्पिक हल है कि मुझे 'में' के पैरामीटर के लिए एक सूची बाध्य करने के लिए अनुमति दे सकते हैं है मिल गया खंड के लिए इस एसक्यूएल उपयोग कर रहा हूँ ?
मूल्यों एक में करने के लिए पारित कर दिया अभी भी असतत, एसक्यूएल में प्रदान की गई मान होते हैं, इसलिए एसक्यूएल अलग-अलग बाध्य पैरामीटर को शामिल करने के लिए अभी भी स्टेटमेंट बनाया जाना चाहिए। यदि आप शाब्दिक एसक्यूएल का उपयोग कर रहे हैं तो आपको "iddata1,: iddata2, .." आदि का एक स्ट्रिंग concatenation करना होगा। नीचे गैरी का जवाब सही है। – zzzeek