query = "SELECT * FROM mytable WHERE time=%s", (mytime)
目前,我正在这样做,但我想把它分成2个字符串(所以我可以单独完成)
cursor.execute("SELECT * FROM mytable WHERE time=%s",(mytime))
然后,我想为它添加限制%s。如果不弄乱%s,我怎么能这样做呢?
编辑:我想连接query2,它有“LIMIT%s,%s”
答案 0 :(得分:3)
警惕SQL注入,您可以动态撰写查询as Ignacio suggests。
>>> qry = 'SELECT t.mycol FROM mytable t WHERE t.mycol = %%s %s' % 'LIMIT %s,%s'
你问:
如何在不搞乱的情况下做到这一点 mytime中的%s?
请注意,您使用额外的%s
转义第一个%
这给了你这个字符串(就DB-API而言当然看起来很可爱):
>>> qry
'SELECT * FROM mytable t WHERE t.mycol = %s LIMIT %s,%s'
然后将此字符串和参数传递给execute()
方法:
curs.execute(qry, (mytime,1,2,))
HTH
答案 1 :(得分:1)
cxn.execute("SELECT * FROM mytable WHERE time=%%s LIMIT %d" % (mylimit,), mytime)
或者:
cxn.execute("SELECT * FROM mytable WHERE time=%s" + (" LIMIT %d" % (mylimit,)), mytime)