在python

时间:2015-08-10 12:01:51

标签: python mysql

我有一个名为Email1Email2的多个类似条目的数据库......我创建了一个函数来存储这些列中的数据。但是,调用函数只能存储/更新特定列而不能存储/更新特定列。我有这段代码:

self.query = ("Update registration set Email1 = %s where Username =%s")

我在函数中使用相同的代码,因此在调用函数时,它会不断更新同一列Email1而不是其他列。有没有办法更新查询中的列名,以便可以反复调用相同的函数和相同的查询而无需键入查询本身?谢谢!

1 个答案:

答案 0 :(得分:0)

你可以试试这样的事情

def update_registration(email1, email2, username)
    query = "Update registration set Email1 = IFNULL(%s, Email1), Email2 = IFNULL(%s, Email2) where Username = %s"
    data = (email1, email2, username)
    ...
    cursor.execute(query, data)
    ...

一样逐步使用此功能
update_registration('aa@example.com', None, 'Test')
update_registration(None, 'bb@example.com', 'Test')

结果会给用户测试值: email1 = aa@example.com email2 = bb@​​example.com