Java教程

ERROR 1064 (42000): You have an error in your SQL syntax;

本文主要是介绍ERROR 1064 (42000): You have an error in your SQL syntax;,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今天在mysql执行一个sql语句,报错:

mysql> select sum(xxxx) from xxxx where dm='dbm' and DATE_FORMAT(sj,'%Y-%m') = DATE_FORMAT('sj$','%Y-%m');
ERROR 1064 (42000): 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 'select sum(xxxx) from xxxxx where dm='dbm' and DAT' at line 1

报的错误有点看不懂,仔细检查sql,并没有语法错误,于是自己手敲了一遍,发现可以正确执行。

于是,将报错的和手敲的放到txt里面,没有发现不同,怀疑是有不可见的字符,拷贝到linux里面,用cat -A查看,发现了问题:

# cat -A a.txt
selectM-BM- sum(xxxxx) fromM-BM- xxxxxxx-BM- whereM-BM-
select sum(xxxxx) from formtable_main_125 where

发现上面的sql,多了一些M-BM-字符。

如何替换呢?用16进制:

# cat -A b.txt
selectM-BM- sum(xxxxx)
# od -tcx1 b.txt
0000000   s   e   l   e   c   t 302 240   s   u   m   (   x   x   x   x
         73  65  6c  65  63  74  c2  a0  73  75  6d  28  78  78  78  78

解决方法:
可以用sed命令处理一下文件,命令如下:
sed 's/\xc2\xa0/ /g' -i 文件路径  
就可以把"M-BM-" 替换成空格。

这篇关于ERROR 1064 (42000): You have an error in your SQL syntax;的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!