Re: Inserting variable into

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: hagen(at)datasundae(dot)com, psycopg(at)lists(dot)postgresql(dot)org, psycopg(at)postgresql(dot)org
Subject: Re: Inserting variable into
Date: 2020-12-07 22:31:23
Message-ID: 63f9baec-b185-3278-e8a7-84692579f9d8@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: psycopg

On 12/7/20 2:26 PM, hagen(at)datasundae(dot)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 (remember that 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(dot)klaver(at)aklaver(dot)com>
> Sent: Monday, December 7, 2020 3:04 PM
> To: hagen(at)datasundae(dot)com; psycopg(at)lists(dot)postgresql(dot)org; psycopg(at)postgresql(dot)org
> Subject: Re: Inserting variable into
>
> On 12/7/20 2:02 PM, hagen(at)datasundae(dot)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-queries
>
>>
>> I imagine others do - thanks!
>>
>> Best,
>>
>> Hagen
>>
>>
>>
>
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse psycopg by date

  From Date Subject
Next Message hagen 2020-12-07 22:34:00 RE: Inserting variable into
Previous Message hagen 2020-12-07 22:26:26 RE: Inserting variable into