【发布时间】:2018-01-20 07:46:25
【问题描述】:
我在尝试对数据库执行更新时遇到了一个非常奇怪的错误。这是在使用 MySQL 5.7.19-0ubuntu0.16.04.1 的 Ubuntu 16.04 服务器上。查询是:
更新athlet_teamseason SET offkeyreturners = 'test' WHERE athlet_teamseason.id = 29701;
MySQL 错误是:
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'offkeyreturners = 'test' WHERE athlet_teamseason.id = 29701' 附近使用正确的语法
我在 phpMyAdmin 中执行此操作,它提供了更多信息:
在分析过程中发现了 2 个错误。
之前找到了一个别名。 (在位置 50 的 " " 附近) 之前发现了一个别名。 (在位置 51 的“'test'”附近)
如果我直接在 phpMyAdmin 用户界面中尝试此更新(搜索记录、编辑字段值、提交表单)它可以工作,并且显示的查询是:
更新athlet_teamseason SET offkeyreturners = '测试' WHERE athlet_teamseason.id = 29701;
这似乎是相同的。但是,如果我在两者之间进行字符串比较,我会得到:
因此,虽然它们看起来相同,但在某处却有所不同。
查询是从数据库中的表创建的,使用连接和引用源表中的单元格。例如:
="UPDATE athlet_teamseason SET offkeyreturners = '"&data!I2&"' WHERE athlet_teamseason.id = "&data!A2&";"
我有成千上万个,它们都产生相同的错误。我已经在旧服务器上做了几十次,可能是 MySQL 5.7 的问题?
【问题讨论】:
-
我猜你的字段中有一些非打印字符。
-
谢谢,我也想到了。我用光标键在文本上移动,看看是否能检测到任何内容,但没有运气。
-
光标键不一定对非空白字符有帮助;您通常可以通过 LENGTH 函数查找您知道自己遇到问题的值的差异,从而获得更好的结果;或者你可能对正则表达式有一些运气。
-
谢谢,我手动重新输入了我的模板查询,现在它可以工作了。
标签: mysql import phpmyadmin