MYSQL: 在 CONCAT() 函数中使用列名给出语法错误 1064

MYSQL: Using column name in CONCAT() function gives syntax error 1064

我有这个问题

UPDATE `fitment_drums` SET `liters` = CONCAT(`liters`,'.0') WHERE `liters` LIKE '_'

导致此错误的结果:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''.0') FROM `fitment_drums` WHERE `liters` LIKE '_'' at line 1

当我替换普通字符串时,例如。 CONCAT ('asdf','.0') 效果很好。我试过使用 select 语句作为参数,也试过使用临时 table:

CREATE TEMPORARY TABLE t1 (SELECT * FROM `fitment_drums` WHERE liters like '_') 
UPDATE `fitment_drums` SET liters = CONCAT(t1.liters,'.0') where t1.id = id

好的,所以我找到了 "solution"。我是 运行 模拟模式下的查询,这导致了上面发布的错误。所以我备份了 table 并在实时模式下执行了查询,并且成功了。 (为了记录,我使用的是 phpMyAdmin)

很奇怪。

感谢所有试图提供帮助的人!

既然您透露您正在使用 phpMyAdmin,您应该知道临时 table 会在数据库连接结束时自动删除。

phpMyAdmin 中的每个页面视图都是一个单独的 PHP 请求,因此是一个单独的数据库连接。

因此,如果您 CREATE TEMPORARY TABLE 在 phpMyAdmin 中,那么当您 运行 您的 UPDATE.

时临时 table 已经不存在了