我有这个查询
UPDATE `fitment_drums` SET `liters` = CONCAT(`liters`,'.0') WHERE `liters` LIKE '_'
导致此错误:
#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法 靠近''.0')FROM`fitment_drums` WHERE`ligrs` LIKE'_''在第1行
当我替换普通字符串时,例如。 CONCAT ('asdf','.0')
它运作正常。我尝试使用select语句作为参数,并尝试使用临时表:
CREATE TEMPORARY TABLE t1 (SELECT * FROM `fitment_drums` WHERE liters like '_')
UPDATE `fitment_drums` SET liters = CONCAT(t1.liters,'.0') where t1.id = id
答案 0 :(得分:1)
好的,所以我找到了"解决方案"。我在模拟模式下运行查询,导致上面发布的错误。所以我备份了表并在实时模式下执行了查询,并且它工作正常。 (为了记录,我使用phpMyAdmin)
很奇怪。
感谢所有试图提供帮助的人!
答案 1 :(得分:1)
由于您发现您正在使用phpMyAdmin,因此您应该知道在数据库连接结束时会自动删除临时表。
phpMyAdmin中的每个页面视图都是一个单独的PHP请求,因此是一个单独的数据库连接。
因此,如果您在phpMyAdmin中CREATE TEMPORARY TABLE
,那么当您运行UPDATE
时,临时表就不再存在。