› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
daimaosix
V2EX  ›  MySQL

我这个批量替换某表字段内容的 SQL 语句有错吗...一直报错 1064

  •  
  •   daimaosix · Aug 15, 2020 · 3421 views
    This topic created in 2241 days ago, the information mentioned may be changed or developed.

    数据库版本 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
    
    Supplement 1  ·  Aug 15, 2020
    问题应该是#10 楼老哥说的,有不可见符号,已经从头到尾重新手打了一遍,正常执行了,谢谢大家。
    14 replies  •  2020-08-15 21:05:55 +08:00
    wa8n
        1
    wa8n  
       Aug 15, 2020 via iPhone
    命令行执行,还是代码调用?
    starwing
        2
    starwing  
       Aug 15, 2020
    试试看是不是 main_url 这玩意儿不在表里,我拿了个错误的字段试了下报你的这个错。
    daimaosix
        3
    daimaosix  
    OP
       Aug 15, 2020
    @wangsongyan 直接命令行执行的
    daimaosix
        4
    daimaosix  
    OP
       Aug 15, 2020
    @starwing 在呢,我反复确认了好几遍,实在找不到问题了
    hm20062006ok
        5
    hm20062006ok  
       Aug 15, 2020
    加上 where 语句试试?可能是安全策略设置保守?
    akira
        6
    akira  
       Aug 15, 2020
    命令行?库名错了吧
    daimaosix
        7
    daimaosix  
    OP
       Aug 15, 2020
    @hm20062006ok 没有做安全策略,这个就是一个普通的集群,没做太多策略,打算下个月换云数据库了
    daimaosix
        8
    daimaosix  
    OP
       Aug 15, 2020
    @akira 没错的,我进入那个库执行的,表和字段名都没错,就是不知道哪里错了,难受
    goodboy95
        9
    goodboy95  
       Aug 15, 2020
    错误位置在整个语句之前,这就有点怪异。
    总感觉是哪里有问题,导致传给数据库的语句不止这么一句。
    goodboy95
        10
    goodboy95  
       Aug 15, 2020   ❤️ 1
    这语句是手打的吗?不是的话建议从头手打一遍,排除不可见符号导致的问题。
    zhangysh1995
        11
    zhangysh1995  
       Aug 15, 2020
    看起来没毛病,可以到 MariaDB 社区或者 MySQL Slack 问一下。觉得可能是 SQL Parser 有 bug 。。。
    daimaosix
        12
    daimaosix  
    OP
       Aug 15, 2020
    @goodboy95 我是先在 VScode 手动打的,确认 OK 了,复制到命令行执行的,我现在试试在命令行输入试试
    laminux29
        13
    laminux29  
       Aug 15, 2020
    我最烦这种一行代码包含多个操作的做法,不易读,也不利于调试,而且,连自己也被坑了。
    daimaosix
        14
    daimaosix  
    OP
       Aug 15, 2020
    @laminux29 同感
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1232 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 16:32 · PVG 00:32 · LAX 09:32 · JFK 12:32
    ♥ Do have faith in what you're doing.