[英]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.