【问题标题】:SQL make 2 update queries 1SQL 进行 2 次更新查询 1
【发布时间】:2016-12-05 06:40:51
【问题描述】:

我有两个更新查询,我想从中提取一个,但我不知道怎么做?我在 Stack Overflow 上查看了其他一些示例,但我无法让它工作。

查询 1:

UPDATE `exercise_list` 
SET  `ex1`= `ex2`, `ex2`= `ex3`,`ex4` = NULL 
WHERE `day_ID`= 1 AND `user_ID`= 4

查询 2:

UPDATE `training_results` 
SET `ex1`= `ex2`, `ex2`= `ex3`,`ex4` = NULL  
WHERE `day_ID`= 1 AND `user_ID`= 4

【问题讨论】:

标签: mysql sql sql-update


【解决方案1】:

可能是两个表的内连接

UPDATE exercise_list as a 
INNER JOIN training_results as b ON (a.day_ID = b.day_ID   AND a.user_ID = b.user_ID )
SET ex1= ex2, 
    ex2= ex3,
    ex4 = NULL
WHERE a.user_ID=4
AND a.day_ID = 1

【讨论】:

    【解决方案2】:
    UPDATE A 
    SET A.ex1 = A.ex2
    , B.ex1 = B.ex2
    , A.ex2 = A.ex3
    , B.ex2 = B.ex3
    , A.ex4 = NULL
    , B.ex4 = NULL
    FROM exercise_list A
    JOIN training results B on  A.ID = B.ID
    WHERE A.day_id = 1 and A.user_id = 4
    

    【讨论】:

      【解决方案3】:

      有两种方法可以实现:

      1. 使用单个 mySqlQuery 调用,只需按以下方式调用 mySqlQuery 函数:

        mySqlQuery(UPDATE exercise_list SET ex1= ex2, ex2= ex3,ex4 = NULL WHERE  
        day_ID= 1 AND user_ID= 4;   
        UPDATE training_results SET ex1= ex2, ex2= ex3,ex4 = NULL WHERE  
        day_ID= 1 AND user_ID= 4;)  
        
      2. 方法二:

        UPDATE exercise_list e_l ,training_results t_r SET  
        e_l.ex1=e_l.ex2, e_l.ex2=e_l.ex3,e_l.ex4=NULL,  
        t_r.ex1=t_r.ex2, t_r.ex2=t_r.ex3,t_r.ex4=NULL  
        WHERE e_l.day_ID = 1 AND e_l.user_ID = 4 AND  
        t_r.day_ID = 1 AND t_r.user_ID = 4;  
        

      【讨论】:

        【解决方案4】:

        大概是这样的:

        UPDATE exercise_list as el, training_results as tr SET  
        el.ex1=el.ex2,el.ex2=el.ex3, el.ex4=NULL, tr.ex1=tr.ex2, tr.ex2=tr.ex3, tr.ex4=NULL  
        WHERE el.day_ID = 1 AND el.user_ID = 4 AND tr.day_ID = 1 AND tr.user_ID = 4;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-07
          • 2013-03-04
          • 1970-01-01
          • 2011-04-21
          • 2015-07-04
          • 1970-01-01
          相关资源
          最近更新 更多