2012-06-07 18 views
17

Benim sorgu:Python'ın sqlalchemy's execute() ve pymysql kullanarak bir sorguda% kaçış nasıl?

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

hata veriyor: Hızlı google yerine% %% kullanmak söyledi

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

ama bu da işe yaramaz. Nasıl% kaçabilirim veya rastgele bir harfle başlayan bir dizgiyi belirli bir sıra için sorgulamanın başka bir yolu var mı?

cevap

26

bu değişmez bir dize olduğundan, (text() kullanarak resimli) burada bağlanmış parametresini kullanarak daha iyi olur: ters eğik çizgi \

ı gerçekleştirdiğinizde Bunu kullanmak ile

from sqlalchemy import text 

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

Kaçış onu LIKE sorgular: query100% olan aramalar için

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

, query_wildcard, %100\%% içeriyorsa, bu nedenle 100%

için arama yapıyor Belki de kodunuzda uygulanması gereken bir şey var mı?

+1

Hayır, bu işe yaramıyor – Ahmed

İlgili konular