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 已经不存在了
我有这个问题
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
.