(Python) 如何编辑 SQL 数据库中的现有行?
(Python) How to edit existing rows in a SQL DB?
我正在尝试遍历数据库中的每一行并为每一行编辑一个列。该列名为 "name"(一个 varchar),它在公司 table.
中
我正在尝试删除逗号,然后在我的数据库中更新它。
到目前为止我得到的是:
cursor = db.cursor()
companynames = cursor.execute("SELECT name FROM company;")
for row in cursor:
row.replace(",", "")
这不能正常工作。
print row
returns ('Syntel, Inc. ',)
... 一个元组
如何正确检索 varchar 字段然后更新它?
`
Mysql 有一个 REPLACE
函数。
最有效的方法是:
cursor.execute("UPDATE company SET name = replace(name, ',', '')")
db.commit()
如果您想将行拉入 python 然后编辑字符串,您可以这样做:
corrected_names = []
for row in cursor.execute('SELECT name FROM company'):
corrected_names.append(row[0].replace(',', ''))
这会将所有更正的名称放入新列表中。
但是,这种方法仍然可以改进。
corrected_rows = []
for row in cursor.execute('SELECT id, name FROM company'):
corrected_rows.append((row[0], row[1].replace(',', '')))
这里我们查询主键以及我们感兴趣的字段,然后将编辑的行添加到我们的列表中。所以现在 corrected_rows
是一个元组列表。
根据需要编辑完字段后,我们可以更新数据库中的部分或全部行,因为我们有主键。
这种方式灵活性最大。
Haleemur 的答案是 MySQL 唯一方法的正确答案(老实说,这可能是最好的方法,但我不知道您的需求)。
就您的 python 而言,row
只是返回您的数据元组。由于您选择的唯一列位于第一个位置,因此您可以使用索引符号提取该字符串:row[0]
。你的情况:
removedCommas = row[0].replace(",", "")
# Do work with the string removedCommas
我正在尝试遍历数据库中的每一行并为每一行编辑一个列。该列名为 "name"(一个 varchar),它在公司 table.
中我正在尝试删除逗号,然后在我的数据库中更新它。
到目前为止我得到的是:
cursor = db.cursor()
companynames = cursor.execute("SELECT name FROM company;")
for row in cursor:
row.replace(",", "")
这不能正常工作。
print row
returns ('Syntel, Inc. ',)
... 一个元组
如何正确检索 varchar 字段然后更新它? `
Mysql 有一个 REPLACE
函数。
最有效的方法是:
cursor.execute("UPDATE company SET name = replace(name, ',', '')")
db.commit()
如果您想将行拉入 python 然后编辑字符串,您可以这样做:
corrected_names = []
for row in cursor.execute('SELECT name FROM company'):
corrected_names.append(row[0].replace(',', ''))
这会将所有更正的名称放入新列表中。
但是,这种方法仍然可以改进。
corrected_rows = []
for row in cursor.execute('SELECT id, name FROM company'):
corrected_rows.append((row[0], row[1].replace(',', '')))
这里我们查询主键以及我们感兴趣的字段,然后将编辑的行添加到我们的列表中。所以现在 corrected_rows
是一个元组列表。
根据需要编辑完字段后,我们可以更新数据库中的部分或全部行,因为我们有主键。
这种方式灵活性最大。
Haleemur 的答案是 MySQL 唯一方法的正确答案(老实说,这可能是最好的方法,但我不知道您的需求)。
就您的 python 而言,row
只是返回您的数据元组。由于您选择的唯一列位于第一个位置,因此您可以使用索引符号提取该字符串:row[0]
。你的情况:
removedCommas = row[0].replace(",", "")
# Do work with the string removedCommas