[python] Vkladani listu do SQL prikazu
Jan Janech
devel na atlas.sk
Pátek Srpen 15 06:02:37 CEST 2008
Ahoj,
ako najjednoduchsie (a zaroven este ako tak rozumne) riesenie vidim:
tmp = ",".join(["%s"]*len(nejakylist))
cursor.execute("SELECT ....WHERE t.tagname IN ("+tmp+")", nejakylist).
Popripade, ak sa niekomu nepaci, ze sa tam robi zbytocny zoznam (napr.
mne ;) ), tak to iste cez iteratory:
tmp = ",".join("%s" for polozka in nejakylist)
cursor.execute("SELECT ....WHERE t.tagname IN ("+tmp+")", nejakylist).
slush wrote:
> 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
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
--
____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
Další informace o konferenci Python