2012-01-08 20 views
9

ben gibi bir Python MySQL sorgusu yapmak istiyorum:MySQL Python GİBİ joker

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

Ama% joker olarak görmedim, bu bir değişken bekliyor sanırım. Bir hata alıyorum: Hiçbir şey işe yaramıyor gibi görünüyor. '% Start%' yerine bir değişken kullanabilseydim de hoş olurdu.

cevap

16

Python db-api kullanıyorsunuzdur.

%'dan %% olarak çıkmayı deneyebilirsiniz.

örneğin çeşitli yolları vardır parametreleri geçen gelince: Sen "i ağ modülü" bölümündeki on this blog geçen parametrenin başka yollarla örnekler görebilirsiniz

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

. Hepsi de tüm konektörlerle çalışmaz.

+1

%% works ile kaçış, teşekkürler :) Basit dizelerin kullanımı aynı hatayı verdi. – user984003

+0

@ user984003 garip, ama şu anda test bile edemiyorum. Yine de yardımcı olmasına sevindim. – soulcheck

+0

@soulcheck: String sözdiziminin '' '' nin (örneğin Bourne Shell ya da Ruby'nin '' '' '' '' '' '' '' '' '' 'gibi) yorumlanmasıyla bir ilgisi yoktur. Yani "%" "% start%" "", "% start%" ile aynıdır, "% start%" ve "r"% start% ', vb. Ile aynıdır. –