public inbox for [email protected]  
help / color / mirror / Atom feed
From: [email protected]
To: 'Adrian Klaver' <[email protected]>
To: [email protected]
To: [email protected]
Subject: RE: Inserting variable into
Date: Mon, 7 Dec 2020 15:34:00 -0700
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>

OK got it. That's very helpful thank you!

-----Original Message-----
From: Adrian Klaver <[email protected]> 
Sent: Monday, December 7, 2020 3:31 PM
To: [email protected]; [email protected]; [email protected]
Subject: Re: Inserting variable into

On 12/7/20 2:26 PM, [email protected] 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 <[email protected]>
> Sent: Monday, December 7, 2020 3:04 PM
> To: [email protected]; [email protected]; 
> [email protected]
> Subject: Re: Inserting variable into
> 
> On 12/7/20 2:02 PM, [email protected] 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
[email protected]








view thread (11+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: RE: Inserting variable into
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox