2012-06-07 9 views
17

मेरे प्रश्न है:पायथन के sqlalchemy के execute() और pymysql का उपयोग कर क्वेरी में% से कैसे बचें?

result = connection.execute(
     "select id_number from Table where string like '_stringStart%' limit 1;") 

त्रुटि देता है:

query = query % escaped_args 
TypeError: not enough arguments for format string 

एक त्वरित गूगल% के बजाय %% उपयोग करने के लिए कहा, लेकिन है कि या तो काम नहीं करता। मैं% से कैसे बचूं या एक स्ट्रिंग के लिए क्वेरी करने का कोई और तरीका है जो एक यादृच्छिक अक्षर से शुरू होता है तो एक निश्चित अनुक्रम?

उत्तर

26

चूंकि यह एक शाब्दिक स्ट्रिंग है, तो आप (सचित्र text() का प्रयोग करके) यहाँ एक बाध्य पैरामीटर का उपयोग करने से बेहतर कर रहे हैं:

from sqlalchemy import text 

connection.execute(
    text("select * from table where " 
     "string like :string limit 1"), 
    string="_stringStart%") 
0

एस्केप यह एक बैकस्लैश \

मैं इसका इस्तेमाल जब मैं प्रदर्शन के साथ LIKE प्रश्नों:

query_wildcard = "%{0}%".format(query.replace("%", "\%")) 

खोजों query100% है के लिए, query_wildcard में %100\%% है, इसलिए यह वास्तव में 100%

शायद आपके कोड में लागू करने के लिए कुछ है?

+1

नहीं, यह काम नहीं करता है – Ahmed

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