Как связать строку в Python - PullRequest
1 голос
/ 31 марта 2010
query = "SELECT * FROM mytable WHERE time=%s", (mytime)

В настоящее время я делаю это, но я хочу разбить его на 2 строки (чтобы я мог сделать их отдельно)

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

Затем я хочу добавить к нему лимит% s. Как я могу это сделать, не испортив% s в mytime?

Редактировать: Я хочу объединить запрос2, который имеет "LIMIT% s,% s"

Ответы [ 2 ]

3 голосов
/ 31 марта 2010

Опасаясь внедрения SQL, вы можете динамически составлять запрос , как предлагает Игнасио .

>>> qry = 'SELECT t.mycol FROM mytable t WHERE t.mycol = %%s %s' % 'LIMIT %s,%s'

Вы спрашиваете:

Как я могу это сделать, не испортив % s в моем времени?

Обратите внимание, что вы спасаетесь от первого %s с дополнительным %.
Это дает вам эту строку (которая, конечно, выглядит прекрасно, если рассматривать DB-API ):

>>> qry
'SELECT * FROM mytable t WHERE t.mycol = %s LIMIT %s,%s'

Затем передайте эту строку и ваши параметры методу execute():

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

НТН

1 голос
/ 31 марта 2010
cxn.execute("SELECT * FROM mytable WHERE time=%%s LIMIT %d" % (mylimit,), mytime)

Или:

cxn.execute("SELECT * FROM mytable WHERE time=%s" + (" LIMIT %d" % (mylimit,)), mytime)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...