我需要用函数返回的值更新表中的每一行。此函数使用同一行的单独列值。我了解如何从一行中选择列值以及如何更新一个列值,但不知道如何对表中的每一行执行这两项操作。
例如,如果我有一个包含员工信息(例如生日)的表,我将如何使用 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)
抱歉,代码很草率,但这是我尝试做的示例 ^
您需要针对循环的当前行进行更新。为此,请使用表的主键——我假设它在下面的代码中称为
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))