› 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
FenixVu
V2EX  ›  MySQL

mysql 批量 update 问题

  •  
  •   FenixVu · Jul 9, 2020 · 3165 views
    This topic created in 2285 days ago, the information mentioned may be changed or developed.

    |cno |cname |tno | |1001|zhangsan|101| |1002|zhangsan|102| |1003|zhangsan|103|

    UPDATE course
        SET cno = CASE tno
            WHEN 1001 THEN '1.57' 
            WHEN 1002 THEN '1.3'
            WHEN 1003 THEN '1.2' 
        END
    WHERE tno IN (1,2,3)
    

    返回

    1 queries executed, 1 success, 0 errors, 0 warnings
    
    查询:UPDATE course SET cno = CASE tno WHEN 1001 THEN '1.57' WHEN 1002 THEN '1.3' WHEN 1003 THEN '1.2' END WHERE tno IN (1,2,3)
    
    共 0 行受到影响
    
    执行耗时   : 0 sec
    传送时间   : 0 sec
    总耗时      : 0.001 sec
    

    为啥???

    8 replies  •  2020-07-09 20:11:43 +08:00
    zshneedmoney
        1
    zshneedmoney  
       Jul 9, 2020
    啥意思?这没有符合条件的数据可不就是 0 行收到影响
    FenixVu
        2
    FenixVu  
    OP
       Jul 9, 2020
    @zshneedmoney

    当条件 'tno' 是 1001 的时候 把 cno set 为 '1.57'
    难道是我理解错了么
    qiayue
        3
    qiayue  
       Jul 9, 2020
    WHERE tno IN (1,2,3)
    要改成
    WHERE tno IN (1001,1002,1003)
    U7Q5tLAex2FI0o0g
        4
    U7Q5tLAex2FI0o0g  
       Jul 9, 2020
    你的 tno 不是 101,102,103 么,WHERE tno IN (1,2,3) 没有符合的数据
    DonaldY
        5
    DonaldY  
       Jul 9, 2020
    when 后面是表达 bool 吧。
    FenixVu
        6
    FenixVu  
    OP
       Jul 9, 2020
    @qiayue @littleylv 我试了下 都不太行...
    qiayue
        7
    qiayue  
       Jul 9, 2020
    语法错了

    UPDATE course
    SET cno = CASE
    WHEN tno=1001 THEN '1.57'
    WHEN tno=1002 THEN '1.3'
    WHEN tno=1003 THEN '1.2'
    ELSE cno
    END
    WHERE tno IN (1001,1002,1003)
    JasonLaw
        8
    JasonLaw  
       Jul 9, 2020 via iPhone
    能够清楚地表达一下你的“为啥”是什么吗?反正我是不明白你的问题是什么
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2927 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 09:39 · PVG 17:39 · LAX 02:39 · JFK 05:39
    ♥ Do have faith in what you're doing.