2012-01-08 16 views
9

मैं जैसे एक अजगर MySQL क्वेरी क्या करना चाहते हैं:MySQL अजगर की तरह वाइल्डकार्ड

cursor = connection.cursor() 
sql = "select text \ 
     from steps \ 
     where text like '%start%'" 
cursor.execute(sql) 

लेकिन% वाइल्डकार्ड के रूप में नहीं देखा जाता है, यह एक चर की उम्मीद कर रहा है, मुझे लगता है। मैं एक त्रुटि मिलती है:

TypeError: not enough arguments for format string 

कुछ भी नहीं काम करने के लिए लगता है। यह अच्छा होगा अगर मैं '% start%'

उत्तर

16

के बजाय एक चर का उपयोग कर सकता हूं तो मुझे लगता है कि आप पाइथन डीबी-एपीआई का उपयोग कर रहे हैं।

आप % से %% से बचने का प्रयास कर सकते हैं।

पैरामीटर प्रदान करने के लिए वहाँ के रूप में कई तरीकों से, उदाहरण के लिए है:

cursor = connection.cursor() 
sql = """select text 
    from steps 
    where text like %s""" 
cursor.execute(sql, (('%' + 'start' + '%',)) 

आप पैरामीटर "इंटरफेस modułu" खंड में on this blog गुजर के अन्य तरीकों के उदाहरण देख सकते। वे सभी कनेक्टर्स के साथ काम नहीं करते हैं।

+1

%% कार्यों से बचने, धन्यवाद :) शाब्दिक तारों का उपयोग एक ही त्रुटि देता है। – user984003

+0

@ user984003 अजीब, लेकिन मैं अभी भी इसका परीक्षण नहीं कर सकता। खुशी है कि यह वैसे भी मदद की। – soulcheck

+0

@ सोल्चेक: स्ट्रिंग सिंटैक्स का '% 'की व्याख्या के साथ कुछ लेना देना नहीं है (उदाहरण के लिए बोर्न शैल या रूबी' $' की व्याख्या कैसे करें)। तो '" "% प्रारंभ%" "" ''% प्रारंभ%% 'जैसा सटीक है, जो'%%%% 'और 'r'% start% '', आदि के समान है –

संबंधित मुद्दे