数据库版本 MariaDB-10.4.10 ,刚在执行一个批量替换某表字段内容的语句,但检查和调整了很久始终报错 1064,麻烦 V 友给看一下到底是哪里错了...
update base_info set main_url = replace(main_url,'v02-vid.xxxx.com','v01-vid.xxxx.myxxxx.com');
报错如下
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'update base_info set main_url = replace(main_url,'v02-vid' at line 1
|  |      1wangsongyan      2020-08-15 15:41:50 +08:00 via iPhone 命令行执行,还是代码调用? | 
|      2starwing      2020-08-15 15:55:26 +08:00 试试看是不是 main_url 这玩意儿不在表里,我拿了个错误的字段试了下报你的这个错。 | 
|  |      3daimaosix OP @wangsongyan 直接命令行执行的 | 
|      5hm20062006ok      2020-08-15 16:19:04 +08:00 加上 where 语句试试?可能是安全策略设置保守? | 
|  |      6akira      2020-08-15 16:22:54 +08:00 命令行?库名错了吧 | 
|  |      7daimaosix OP @hm20062006ok 没有做安全策略,这个就是一个普通的集群,没做太多策略,打算下个月换云数据库了 | 
|      9goodboy95      2020-08-15 17:06:00 +08:00 错误位置在整个语句之前,这就有点怪异。 总感觉是哪里有问题,导致传给数据库的语句不止这么一句。 | 
|      10goodboy95      2020-08-15 17:07:02 +08:00  1 这语句是手打的吗?不是的话建议从头手打一遍,排除不可见符号导致的问题。 | 
|      11zhangysh1995      2020-08-15 17:12:53 +08:00 看起来没毛病,可以到 MariaDB 社区或者 MySQL Slack 问一下。觉得可能是 SQL Parser 有 bug 。。。 | 
|  |      12daimaosix OP @goodboy95 我是先在 VScode 手动打的,确认 OK 了,复制到命令行执行的,我现在试试在命令行输入试试 | 
|      13laminux29      2020-08-15 18:48:15 +08:00 我最烦这种一行代码包含多个操作的做法,不易读,也不利于调试,而且,连自己也被坑了。 |