[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL s

时间:2022-03-29 14:55:19

[Err] 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 at line 3

MySQL 5.6,Navicat For MySQL 10.0.10 中执行SQL语句时提示此错误,在CMD中执行SQL文件中的语句时提示以下错误:

D:\Users\Aven>mysql -uroot -p < F:\Publish\Data\share_update.sql
Warning: Using a password on the command line interface can be insecure.
ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear 'ALTER聽TABLE聽mcu聽CHANGE聽`LOCAL_ID`聽`LOCAL_ID`聽VARCHAR(50)聽'
at line 1

解决方案:

发现解决该问题的关键,是错误提示中的空格都是“聽”,这让我想到是文件的编码问题,然后做文件编码的转换。
推荐使用Notepad++,编码转换非常方便,如图:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL s
转换为UTF-8格式,问题依旧,再转为ANSI格式试试:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL s

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL s

哈哈,原形毕露了吧!把?都替换为空格,保存,再执行,一切OK了。

反思:

为什么会出现这种问题呢?
这些语句是从QQ复制到Word中,又从Word中复制到Notepad++中,
估计是从QQ或Word中复制出来的空格有问题。

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL s