RE: Inserting variable into
От | |
---|---|
Тема | RE: Inserting variable into |
Дата | |
Msg-id | 0bfa01d6cce9$0f614ed0$2e23ec70$@datasundae.com обсуждение исходный текст |
Ответ на | Re: Inserting variable into (Adrian Klaver <adrian.klaver@aklaver.com>) |
Список | psycopg |
OK got it. That's very helpful thank you! -----Original Message----- From: Adrian Klaver <adrian.klaver@aklaver.com> Sent: Monday, December 7, 2020 3:31 PM To: hagen@datasundae.com; psycopg@lists.postgresql.org; psycopg@postgresql.org Subject: Re: Inserting variable into On 12/7/20 2:26 PM, hagen@datasundae.com wrote: > So if I understand this correctly my new cur.execute would read: > > account = 'JPMC' > > cur.execute("SELECT SUM(revusd) FROM sfdc where saccount = %s AND > stage LIKE 'Commit%';",(account )) Since you are using a tuple this (account ) would need to be (account,) per the docs at link previously posted: "For positional variables binding, the second argument must always be a sequence, even if it contains a single variable (rememberthat Python requires a comma to create a single element tuple):" > > and that would translate to > > cur.execute("SELECT SUM(revusd) FROM sfdc where saccount = 'JPMC' AND > stage LIKE 'Commit%';") > > is that right? > > Not sure what below is supposed to be about? > > Note You can use a Python list as the argument of the IN operator using the PostgreSQL ANY operator. > ids = [10, 20, 30] > cur.execute("SELECT * FROM data WHERE id = ANY(%s);", (ids,)) > Furthermore ANY can also work with empty lists, whereas IN () is a SQL syntax error. > > -----Original Message----- > From: Adrian Klaver <adrian.klaver@aklaver.com> > Sent: Monday, December 7, 2020 3:04 PM > To: hagen@datasundae.com; psycopg@lists.postgresql.org; > psycopg@postgresql.org > Subject: Re: Inserting variable into > > On 12/7/20 2:02 PM, hagen@datasundae.com wrote: >> Hello, >> >> I'd like to use a variable for 'Big Company' (e.g. account) or where = statements generally in my cur.execute statements: >> >> cur.execute("SELECT SUM(revusd) FROM sfdc where saccount = 'Big >> Company' AND stage LIKE 'Commit%';") >> commitd1 = cur.fetchone() >> conn.commit() >> >> but I don't know the proper syntax with the cur.execute statement to use a variable. > > https://www.psycopg.org/docs/usage.html#passing-parameters-to-sql-quer > ies > >> >> I imagine others do - thanks! >> >> Best, >> >> Hagen >> >> >> > > -- Adrian Klaver adrian.klaver@aklaver.com
В списке psycopg по дате отправления: