更新 MySQL 字段的行
Update MySQL field's row
我正在使用 Python 2.7 和 MySQLdb。我创建了一个数据库,其中有一个名为 test 的 table,其中有两个字段(id、firstname)。整个脚本是关于计算和显示我们有多少个相同的名字。脚本的一部分现在是这样的,但是由于第二行,它当然不起作用:
Value = int(input("Type your first name: "))
x.execute("UPDATE test SET id=(last id)+1 WHERE firstname=%s", (Value,))
我想做的是从键盘输入名字并将其上传到数据库。如果 table 中已经有那个名字,请更改他的 id,这是一个 VARCHAR 并使新的 id = Last id + 1。例如,如果我键入 Doe 并且数据库中也有 Doe 作为名字更改 Doe's行 ID 号,通过加 1 并使其成为 2 为 1。
抱歉回答晚了。
我强烈建议将 ID 设为具有 AUTO INCREMENT 和 PRIMARY KEY 的 INT 以防止重复,但这不允许您随意更改它。
你需要检查一下你在数据库中写的名字是否重复,对吗?
- 如果没有,添加一个新行。
- 如果有,将该名称的 ID 加一。
为了检查该名称是否已在数据库中,您需要执行 SQL 查询,然后检查结果并将找到的名称与您写入的名称进行比较。
首先,查询数据库中已有的姓名。
然后,检查名称是否已经存在。
然后再次更新或向数据库中插入新行。
x.execute("""SELECT firstname FROM test""")
for row in x:
result = row[0]
if result == name:
nameExists = True
else:
nameExists = False
if !nameExists:
x.execute("""INSERT INTO test(firstname, id) VALUES (%s), (%s)""", name, id)
else:
x.execute("""SELECT id FROM test WHERE firstname = %s""", name)
for row in x:
actualId = row[0]
actualId = actualId + 1;
x.execute("""UPDATE test SET id = %s WHERE firstname = %s""", actualId, name)
以上代码可能会根据您的变量名称或首选项进行更改。
不要把它当作工作,直接复制粘贴到你的代码中。
我希望答案是令人满意和完整的。如果没有,请告诉我。第一次回答问题,可能没答对
感谢您的理解。
我正在使用 Python 2.7 和 MySQLdb。我创建了一个数据库,其中有一个名为 test 的 table,其中有两个字段(id、firstname)。整个脚本是关于计算和显示我们有多少个相同的名字。脚本的一部分现在是这样的,但是由于第二行,它当然不起作用:
Value = int(input("Type your first name: "))
x.execute("UPDATE test SET id=(last id)+1 WHERE firstname=%s", (Value,))
我想做的是从键盘输入名字并将其上传到数据库。如果 table 中已经有那个名字,请更改他的 id,这是一个 VARCHAR 并使新的 id = Last id + 1。例如,如果我键入 Doe 并且数据库中也有 Doe 作为名字更改 Doe's行 ID 号,通过加 1 并使其成为 2 为 1。
抱歉回答晚了。
我强烈建议将 ID 设为具有 AUTO INCREMENT 和 PRIMARY KEY 的 INT 以防止重复,但这不允许您随意更改它。
你需要检查一下你在数据库中写的名字是否重复,对吗?
- 如果没有,添加一个新行。
- 如果有,将该名称的 ID 加一。
为了检查该名称是否已在数据库中,您需要执行 SQL 查询,然后检查结果并将找到的名称与您写入的名称进行比较。
首先,查询数据库中已有的姓名。 然后,检查名称是否已经存在。 然后再次更新或向数据库中插入新行。
x.execute("""SELECT firstname FROM test""")
for row in x:
result = row[0]
if result == name:
nameExists = True
else:
nameExists = False
if !nameExists:
x.execute("""INSERT INTO test(firstname, id) VALUES (%s), (%s)""", name, id)
else:
x.execute("""SELECT id FROM test WHERE firstname = %s""", name)
for row in x:
actualId = row[0]
actualId = actualId + 1;
x.execute("""UPDATE test SET id = %s WHERE firstname = %s""", actualId, name)
以上代码可能会根据您的变量名称或首选项进行更改。 不要把它当作工作,直接复制粘贴到你的代码中。
我希望答案是令人满意和完整的。如果没有,请告诉我。第一次回答问题,可能没答对
感谢您的理解。