如何从每个 sql 行中选择一个值以在函数中使用,然后更新每一行

问题描述 投票:0回答:1

我需要用函数返回的值更新表中的每一行。此函数使用同一行的单独列值。我了解如何从一行中选择列值以及如何更新一个列值,但不知道如何对表中的每一行执行这两项操作。

例如,如果我有一个包含员工信息(例如生日)的表,我将如何使用 python 获取该生日,通过函数运行它来确定他们的年龄,然后用确定的年龄更新该特定行的年龄列。我知道如何对一行执行此操作,但不知道如何对表中尚未具有其年龄值的每一行执行此操作。

cursor = connection.cursor()


for row in cursor.execute('SELECT * FROM Table' WHERE Birthdate != ''):
   sql_update_query = """Update name-of-table set age = %s where 
   age = '' """
   age = CurrentYear - yearBorn
   input = (age)
   cursor.execute(sql_update_query, input)

抱歉,代码很草率,但这是我尝试做的示例 ^

python sql mysql mysql-connector
1个回答
0
投票

您需要针对循环的当前行进行更新。为此,请使用表的主键——我假设它在下面的代码中称为

id

sql_update_query = """Update employees set age = %s where id = %s"""

for id, birthdate in cursor.execute('SELECT id, BirthDate FROM employees' WHERE Birthdate != ''):
   age = calculate_age(birthdate)
   cursor.execute(sql_update_query, (age, id))
© www.soinside.com 2019 - 2024. All rights reserved.