【问题标题】:MySQL #1054 error code for UPDATE queryMySQL #1054 UPDATE 查询的错误代码
【发布时间】: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'

标签: python mysql


【解决方案1】:

1054, "'where 子句'中的未知列 'connected'

此错误清楚地表明connected 被视为列名。

但这里connected 是要与列名name 匹配的字符串值。

所以你需要在connected 字符串周围加上一个单引号来解决这个问题:

cursor1.execute("UPDATE settings SET value = 'ts' WHERE name = 'connected'")

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2015-09-01
    • 2012-02-21
    • 2023-02-14
    • 1970-01-01
    • 2016-02-07
    相关资源
    最近更新 更多