2010-03-31 48 views
1
query = "SELECT * FROM mytable WHERE time=%s", (mytime) 

目前,我“米这样做,但我想把它分成2个字符串(这样我就可以单独做这些)如何在Python Concat的字符串

cursor.execute("SELECT * FROM mytable WHERE time=%s",(mytime)) 

然后,我想。增加一个限制%s到它,我怎么能做到这一点没有指明MyTime对应搞乱%S

编辑:我想Concat的QUERY2,其中有 “LIMIT%S,%S”

+0

你也可以发布你用来执行查询的代码吗? – 2010-03-31 00:50:04

+9

我喜欢SQL注入。 – 2010-03-31 01:35:20

+0

SQL注入在哪里? – Gabe 2010-03-31 03:32:52

回答

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) 
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' 

然后通过这个字符串参数到​​方法:

curs.execute(qry, (mytime,1,2,)) 

HTH