繁体   English   中英

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-您的SQL语法有误; 请检查与您的MySQL服务器版本相对应的手册,以获取正确的语法,以在``.0''附近使用)。FROM`fitment_drums` WHERE`liters` LIKE'_'

当我替换一个普通的字符串,例如。 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

好的,所以我找到了“解决方案”。 我在模拟模式下运行查询,这导致上面显示的错误。 因此,我备份了表并以实时模式执行了查询,并且该查询成功了。 (出于记录,我使用的是phpMyAdmin)

很奇怪。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM