[英](Python) How to edit existing rows in a SQL DB?
我试图遍历数据库中的每一行,并为它们的每一行编辑一个列。 该列称为“名称”(varchar),位于公司表中。
我正在尝试删除逗号,然后在数据库中对其进行更新。
到目前为止,我所拥有的是:
cursor = db.cursor()
companynames = cursor.execute("SELECT name FROM company;")
for row in cursor:
row.replace(",", "")
这不能正常工作。
print row
返回('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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.