On 6/22/06, Justin Ezequiel <[EMAIL PROTECTED]> wrote:
> how can I get 'select ... from ... where field in %s' to work for
> sequences of strings?
> sequences of integers works just fine
>
> import MySQLdb
>
> DBCRED = {'host': 'localhost', 'user': 'userjustin',
>           'passwd': 'passwdjustin', 'db': 'dbjustin'}
>
> ARTICLES = ('XXX99999', 'ABZ00002')
> PIDS = (29379, 29380)
>
> FIXEDARTICLENAME = """SELECT * FROM tblForTransfer2Prodsite
> WHERE articleName IN ('XXX99999', 'ABZ00002')"""
> TESTARTICLENAME = """SELECT * FROM tblForTransfer2Prodsite
> WHERE articleName IN %r""" % (ARTICLES,)
> SQLARTICLENAME = """SELECT * FROM tblForTransfer2Prodsite
> WHERE articleName IN %s"""
>
> FIXEDPID = """SELECT * FROM tblForTransfer2Prodsite
> WHERE pid IN (29379, 29380)"""
> TESTPID = """SELECT * FROM tblForTransfer2Prodsite
> WHERE pid IN %r""" % (PIDS,)
> SQLPID = """SELECT * FROM tblForTransfer2Prodsite
> WHERE pid IN %s"""
>
> if __name__ == '__main__':
>     conn = MySQLdb.connect(**DBCRED)
>     try:
>         cur = conn.cursor()
>         print FIXEDARTICLENAME
>         print TESTARTICLENAME
>         print cur.execute(FIXEDARTICLENAME),
>         print cur.execute(TESTARTICLENAME),
>         # cannot get this to work
>         print cur.execute(SQLARTICLENAME, (ARTICLES,))
>         print
>         print FIXEDPID
>         print TESTPID
>         print cur.execute(FIXEDPID),
>         print cur.execute(TESTPID),
>         # but this does
>         print cur.execute(SQLPID, (PIDS,))
>         print
>     finally: conn.close()
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor
>

Can you post your error messages?

-- 
Matt
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to