[python] Vkladani listu do SQL prikazu

azurIt azurit na pobox.sk
Čtvrtek Srpen 14 15:01:08 CEST 2008


je to trochu salamunske riesenie, ale napada ma toto (neskusal som, mozno sa tam objavi nejaky problem):

from string import join

cursor.execute("SELECT ....WHERE t.tagname IN (%s)", join(nejakylist, "','") )

tzn. urobis z toho listu nieco ako tag1','tag2','tag3 a toto nasledne hodis MySQLdb. ten by to tam mal vlozir ako 'tag1','tag2','tag3' (teda na zaciatok a na koniec prida ' )


-----Pôvodná správa-----
Od: slush [slush na centrum.cz]
Komu: "Konference PyCZ" 
Predmet: [python] Vkladani listu do SQL prikazu



Zdravim vsechny,

nedavno se tu resilo, jakym zpusobem posilat promenne do SQL. Dostal jsem se k podobnemu problemu - totiz jakym zpusobem vkladat do SQL ne jednotlive retezce, ale cele listy. Uvedu priklad:
 
nejakylist = ['tag1', 'tag2']
cursor.execute("SELECT ....WHERE t.tagname IN (%s)''', nejakylist)

Toto samozrejme nefunguje, protoze zastupna promenna "%s" hleda v "nejakylist" pouze string, nikoliv list. Potreboval bych, aby se pole "nejakylist" do SQL vlozilo s nasledujici syntaxi:
 
SELECT ....WHERE t.tagname IN ("tag1","tag2")

Tady konkretne to resim v Djangu (from django.db import connection), ale myslim, ze to je dotaz i pro obecny Python.

Diky za kazde nakopnuti,
 Marek

 



Další informace o konferenci Python