Il giorno sab, 29/12/2007 alle 11.37 +0100, Harald Armin Massa ha
scritto:
> Joerg,
> 
> > maybe this is obvious, but I don't know how to execute a query like:
> > select * from mytable where id in (1,2,3)
> > from python. The difficult part is the set in the where clause, the "in
> > (a,b,c,d, ...)"
> 
> 
> WHICH database are you talking about?
> 
> With Oracle, you are on your own, that is, you have to do stringmagic
> to create the SQL.
> 
> With PostgreSQL and PSYCOPG2 you can use lists:
> 
> cs.execute("select * from s2e where element = any (%(what)s)",
> dict(what=[1,2,3]))
> 
> using PostgreSQL arrays and the "any" function.

psycopg2 supports direct conversion of tuples to IN clauses, doing
quoting on the arguments. Just do:

cs.execute("select * from s2e where element IN %(what)s", 
        {'what': (1,2,3)})

federico

-- 
Federico Di Gregorio                         http://people.initd.org/fog
Debian GNU/Linux Developer                                [EMAIL PROTECTED]
INIT.D Developer                                           [EMAIL PROTECTED]
 If a process is potentially good, but 90%+ of the time smart and
  well-intentioned people screw it up, then it's a bad process.
                                                          -- Steve Yegge

Attachment: signature.asc
Description: Questa รจ una parte del messaggio firmata digitalmente

_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
http://mail.python.org/mailman/listinfo/db-sig

Reply via email to