2016-07-30 67 views
3

我有兩個更新查詢,我想使他們中的一個,但我不知道如何?我已經通過一些其他的例子在Stack Overflow上看過,但我無法讓它工作。sql make 2更新查詢1

你能幫我嗎?

查詢1:

UPDATE exercise_list SET ex1 = ex2ex2 = ex3ex4 = NULL WHERE day_ID = 1 AND user_ID = 4

查詢2:

UPDATE training_results SET ex1 = ex2ex2 = ex3ex4 = NULL WHERE day_ID = 1 AND user_ID = 4

UPDATE: 感謝所有的awnsers!我已經接受了第一awnser

+0

[MySQL和更新多個表用一個查詢](可能的重複http://stackoverflow.com/questions/4361774/mysql-update-multiple-tables-with-one - 查詢) –

回答

1

有實現這一目標的方式有兩種:

  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. 方法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; 
    

希望它能幫助。

+0

謝謝你的工作!我已經使用你的第二種方法。 –

0

可能是內部連接的兩個表

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 
0
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 
0

這大概:

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;