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

请教一个 Mysql 条件更新语句,一句完成

  •  
  •   uti6770werty · Apr 18, 2021 · 2987 views
    This topic created in 1994 days ago, the information mentioned may be changed or developed.

    在同一个表中,对值的进行判断,根据判断结果[是否]再进行更新

    1 、有一个名叫mtt的表
    2 、mtt 表内有三个涉事字段,AID,mttID,UpdateTime
    3 、mttID='3A2NN179'的条目,如果AID不等于'2719',把这些条目的AID更新为'2719',同时更新 UpdateTime 时间为 now(),
    4 、如果AID已经是 2719,则不用理会,也不用更新 UpdateTime

    SELECT * FROM mtt WHERE mttID='3A2NN179';

    程序上来说,
    用 SELECT 到内容,程序本地判断,再去做两次 UPDATE,两三个交互的是能做到,握手延时等,费效比不好,看看有无一句完成的可能?

    4 replies  •  2021-04-19 14:26:49 +08:00
    CEBBCAT
        1
    CEBBCAT  
       Apr 18, 2021   ❤️ 1
    UPDATE mtt SET AID='2719',UpdateTime=UNIX_TIMESTAMP() WHERE mttID='3A2NN179' AND AID!='2719'


    这样?
    uti6770werty
        2
    uti6770werty  
    OP
       Apr 18, 2021
    @CEBBCAT 赞一个,思路拐了一个弯就没想到,感谢!
    jorneyr
        3
    jorneyr  
       Apr 19, 2021
    UPDATE question_knowledge_point qkp
    JOIN (SELECT knowledge_point_id AS id, COUNT(id) AS count FROM question GROUP BY knowledge_point_id) AS t ON qkp.id=t.id
    SET qkp.count=t.count
    devswork
        4
    devswork  
       Apr 19, 2021
    update xxx where mttID='3A2NN179' and AID != '2719'
    不就可以啦?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1201 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:38 · PVG 00:38 · LAX 09:38 · JFK 12:38
    ♥ Do have faith in what you're doing.