Python/MySQL: "Truncated incorrect double value..." 简单文本插入

Python/MySQL: "Truncated incorrect double value..." on a simple text insert

我在从 Python 向 MySQL 数据库中插入可能很简单的文本时遇到了问题。文本是一个 HTML 字符串,我想用它更新基于此行主键的现有行。我将此语句与 PyMySQL 一起使用(为便于阅读而添加换行符):

cursor.execute("UPDATE my_table SET my_text_col = %s
    AND another_int_col = %s WHERE my_table_pk_col = %s",
    (some_html_string, some_int, this_rows_pk))

这应该是相当简单的,但(与 MySQL 经常使用的方式一样)显然不是。我得到

Warning: (1292, Truncated incorrect DOUBLE value: [Beginning of some_html_string])

并且 my_text_col 设置为 0

我不知道为什么这不起作用。 table 中没有双字段,HTML 是一个正确转义的字符串,其他两个值是整数。我看到其他人报告了类似的问题,甚至还有与此相关的错误报告 (#43437, #46641),但是这些都超过 8 年了,还没有修复 (我正在使用 MySQL 5.6.27 和 PyMySQL 0.7.11).

如果有人有解决方案或解决方法来完成这个简单的更新,我将不胜感激。

这是一个简单但不明显的语法错误:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

这是来自文档 (https://dev.mysql.com/doc/refman/5.7/en/update.html) 的语法,多个字段用逗号分隔,而不是更新语句中的 AND。