[Tutor] Building an SQL query

Greg Lindstrom tubaranger at gmail.com
Thu Jun 2 15:48:04 CEST 2005


Hello-

I am building a query to hit a Postgres (8.0.1) database from Python (4.2.1) 
on Linux. Here's how I've been doing it for the past year or so:

data = {}
data['start_date'] = '2005-6-2'
data['last_name'] = 'Johnson'

query = '''
SELECT * 
FROM my_table
WHERE date >= '%(start_date)s'
AND last_name = '%(last_name)s'
''' % data
results = my_database.Execute(query)

and life has been good. What I would like to do now is use the Postgres "IN" 
operator. For example:

ids_to_process = ('1','2','3','5','7','11')

I would like to get something akin to:

query = '''
UPDATE my_table 
SET state = 'processed' 
WHERE id IN ids_to_process
'''

This would, of course, set the 'state' column to 'processed' for all of the 
ids in the list, but can not figure out how to get this into a query to pass 
to the database. Have any of you smart cookies out there dealt with this? 
There are other ways to get the job done, worst case being writing a look 
and issuing an UPDATE for each id, but that is not too elegant, IMHO.

Any help or pointers would be greatly appreciated,

--greg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20050602/613e1f88/attachment.htm


More information about the Tutor mailing list