Replace one element of a tuple (LONG)

Captain Dondo yan at NsOeSiPnAeMr.com
Thu Jun 1 19:08:43 EDT 2006


Brian wrote:
> Captain Dondo wrote:
> 
>>What I'd like to do is build the correct selectlist in the first place,
>>rather than build the wrong one and then rebuild a correct one.
> 
> 
> This is sounding more like a SQL/DB problem and less like a Python one.
>  If you have a field that is being pulled from the database that you
> would like to do a substitution on, I'm fairly sure MySQL includes a
> CASE statement in their flavor of SQL.  Instead of performing a  SELECT
> * in your script you could select the individual fields you want, and
> instead of just pulling the problematic column as is, you could pull it
> as something like "select case when sourcehost = x then y else
> sourcehost end case, ...".  Naturally if an entire column needs to be
> replaced with a static value, you won't even need to use CASE.
> 

AFAICT, that one column is always the same, the name of the host that 
the database resides on.  As myth can use multiple backends , it sort of 
makes sense, but it seems redunandant to me.  Even with mutliple 
backends, I would hope you have a single database....

I thought about just picking all the other fields via the SQL query, but 
this seemed simpler to me....

Anyway, here's the code I came up with:

for listing in itemlist:
         (rectitle, recdate) = listing.split('|',1)
         c.execute("""SELECT * FROM recorded WHERE title=%s AND 
starttime=%s""",(rectitle,recdate))
         for listitem in c.fetchall():
                 if 'tooth.seiner.lan' in  listitem:
                         selectlist.append(listitem[:7] + 
('hermes.seiner.lan',) + listitem[9:])
                 else:
                         selectlist.append(listitem)



More information about the Python-list mailing list