使用Python在MySQL中更新和删除值类型的值

时间:2015-05-09 16:03:52

标签: python mysql mysql-python

我正在尝试从MySQL数据库更新和删除一行字段,该行的名称与键入的值相同。我使用的是python 2.7和MySQLdb。这是脚本的一部分:

Value = int(input("Type a number between 1 and 10: "))
cursor.execute("DELETE FROM test WHERE name=Value ")
Value2 = int(input("Type a number between 11 and 20: "))
cursor.execute("UPDATE test SET id='abcd' WHERE name=Value2")

我实际上试图找出如何将我从键盘输入的内容更新并删除mysql代码,并使用该值作为名称字段行的名称在数据库中进行更改。就像现在一样,它为第2行和第4行提供了SQL语法错误。你能告诉我怎样才能解决这个问题?

我在插入值时遇到了同样的问题,但问题是通过stackoverflow的一些人的帮助解决的。这是插入的解决方案,效果很好:

cursor.execute("INSERT INTO test VALUES ('Number', %s)", (Value,))
cursor.execute("""INSERT INTO test VALUES ('Number', {})""".format(Value)
cursor.execute("""INSERT INTO test VALUES ('Number', %s)""" % Value)

我还想知道如何调用这个%s。请帮忙。

2 个答案:

答案 0 :(得分:0)

%s称为绑定变量。删除可以完全相同:

cursor.execute("DELETE FROM test WHERE name=%s", (Value,));

答案 1 :(得分:0)

%s是字符串替换。它的作用类似于print "hi %s, my name is %s" % ("Loudas", "Matthew")

至于你的mysql代码,语法有点偏。它应该是:

Value = int(input("Type a number between 1 and 10: "))
cursor.execute("DELETE %s FROM test WHERE name='%s'" % Value)
Value2 = int(input("Type a number between 11 and 20: "))
cursor.execute("UPDATE test SET id='abcd' WHERE name='%s'" %s Value2)

您需要使用ValueValue2作为变量(不是字符串),并将%s''

包围在一起

资料来源:使用这个东西