【发布时间】:2016-11-22 09:12:30
【问题描述】:
我目前有一个 MySQL 表,如下所示:
mysql> SELECT * FROM settings;
+--------------+-------+
| name | value |
+--------------+-------+
| connected | 0 |
+--------------+-------+
我正在尝试使用此代码通过 Python 连接的时间戳更新值:
db1 = MySQLdb.connect(host="localhost", user="user", passwd="password", db="database")
cursor1 = db1.cursor()
cursor1.execute("UPDATE settings SET value = 'ts' WHERE name = connected")
db1.commit()
cursor1.close()
这会返回给我:
cursor1.execute("""UPDATE settings SET value = 'ts' WHERE name = connected""")
文件“/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py”,第 174 行,在执行
self.errorhandler(self, exc, value)
默认错误处理程序中的文件“/usr/lib/python2.7/dist-packages/MySQLdb/connections.py”,第 36 行
引发错误类,错误值 _mysql_exceptions.OperationalError: (1054, "'where 子句'中的未知列 'connected'")
我就是想不通。任何帮助将不胜感激。
【问题讨论】:
-
您的查询正在尝试将
name列与名为connected的列进行比较。如果您想将name列与文字字符串“已连接”进行比较,那么您的意思是WHERE name='connected'