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

uti6770werty 28天前 24

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

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)
  • CEBBCAT 12天前
    引用 2
    UPDATE mtt SET AID='2719',UpdateTime=UNIX_TIMESTAMP() WHERE mttID='3A2NN179' AND AID!='2719'


    这样?
  • 楼主 uti6770werty 12天前
    引用 3
    @CEBBCAT 赞一个,思路拐了一个弯就没想到,感谢!
  • jorneyr 12天前
    引用 4
    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 12天前
    引用 5
    update xxx where mttID='3A2NN179' and AID != '2719'
    不就可以啦?
  • 游客
    6
返回