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

时间:2016-11-09 23:01:08

标签: mysql sql concat

我有这个查询

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

2 个答案:

答案 0 :(得分:1)

好的,所以我找到了"解决方案"。我在模拟模式下运行查询,导致上面发布的错误。所以我备份了表并在实时模式下执行了查询,并且它工作正常。 (为了记录,我使用phpMyAdmin)

很奇怪。

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

答案 1 :(得分:1)

由于您发现您正在使用phpMyAdmin,因此您应该知道在数据库连接结束时会自动删除临时表。

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

因此,如果您在phpMyAdmin中CREATE TEMPORARY TABLE,那么当您运行UPDATE时,临时表就不再存在。