Faheem Mitha wrote: > On Wed, 21 Jan 2009 08:26:13 -0800, jason kirtland > <j...@discorporate.us> wrote: > >> Faheem Mitha wrote: >>> Hi, >>> >>> I've got a query as follows: >>> >>> from sqlalchemy.sql import text >>> >>> gq = text(""" >>> SELECT decode_genotype(cell.snpval_id, snp.allelea_id, >>> snp.alleleb_id) FROM cell JOIN snp ON snp.fid = >>> cell.snp_id WHERE cell.patient_chipid IN ('DUKE00001_plateA_A10.CEL', >>> 'DUKE00001_plateA_A11.CEL') >>> """) >>> I want to pass in the tuple as an argument, and was wondering how to do >>> it. >>> >>> So, I'm looking for something conceptually like >>> >>> gq = text(""" >>> SELECT decode_genotype(cell.snpval_id, snp.allelea_id, >>> snp.alleleb_id) FROM cell JOIN snp ON snp.fid = >>> cell.snp_id WHERE cell.patient_chipid IN :plist >>> """) > >>> gq = conn.execute(gq, plist="('DUKE00001_plateA_A10.CEL', > 'DUKE00001_plateA_A11.CEL')") > >>> Note, I want to pass in a tuple of arbitary length, so changing >>> this to pass two string arguments would not do. Perhaps I'm >>> supposed to pass in some bindparams too, but I don't know what type >>> I should be using. > >> IN takes a list of scalars, each of which requires its own :bind >> parameter. On Postgresql you might find it more convenient to use >> ANY, which takes a single array argument. "WHERE >> cell.patient_chipid ANY (:plist)" > > Thanks for the suggestion. Can such an array argument be passed in > from Python?
Give it a try and let us know how it goes. Cheers, Jason --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---