Python执行SQL删除reviews列NULL值报DOUBLE值截断错误如何解决
问题根因
你遇到的报错本质是两个常见的SQL写法错误:
- SQL中判断字段是否为NULL不能用
=运算符,必须用IS NULL,用=匹配NULL会返回无效布尔值,还可能触发类型匹配异常 - 你大概率在写删除条件时给
NULL加了单引号,变成了匹配字符串'NULL',数据库做类型转换时尝试把字符串转成DOUBLE类型匹配字段规则失败,就抛出了该截断报错
正确的删除语句写法
如果要删除真实SQL NULL值的行,执行以下语句:
DELETE FROM 你的表名 WHERE reviews IS NULL;
如果你的表中实际存储的是字符串格式的'NULL',可以先执行SELECT语句确认后,执行以下语句:
DELETE FROM 你的表名 WHERE reviews = 'NULL';
Python中执行的参考示例
以pymysql操作为例:
import pymysql # 替换为你自己的数据库连接配置 conn = pymysql.connect(host='127.0.0.1', user='root', password='你的数据库密码', database='你的库名', charset='utf8mb4') cursor = conn.cursor() delete_sql = "DELETE FROM 你的表名 WHERE reviews IS NULL" cursor.execute(delete_sql) conn.commit() cursor.close() conn.close()
提示:执行删除操作前建议先执行
SELECT * FROM 你的表名 WHERE reviews IS NULL确认匹配的行是否符合预期,避免误删数据。
内容的提问来源于stack exchange,提问作者Aliman Ahmed
相关产品推荐
相关产品推荐

