MySQL中可以將查詢結(jié)果復(fù)制到另外的一張表中,復(fù)制的話通常有兩種情況,一種是更新已有的數(shù)據(jù),另一種是插入一條新記錄。下面通過例子來說明。首先構(gòu)建兩個(gè)測試表。
表t1:

表t2:

1、如果t2表中存在score值,將score更新到t1表中。方法如下:
UPDATE t1,t2 
SET t1.score = t2.score 
WHERE t1.id = t2.id AND t2.score IS NOT NULL
這就是將查詢結(jié)果作為條件更新另一張表,當(dāng)然,t2也可以是更為復(fù)雜的一個(gè)查詢結(jié)果而不是一個(gè)具體的表。
2、將t1表的username更新至t2表,將t2表的score更新至t1表。方法如下:
UPDATE t1,t2 
SET t1.score = t2.score,t2.username = t1.username 
WHERE t1.id = t2.id
這個(gè)方法其實(shí)跟上面的方法類似,可以同時(shí)更新兩個(gè)表的數(shù)據(jù),即做表部分?jǐn)?shù)據(jù)的互相復(fù)制、更新。
3、將t2表的查詢結(jié)果插入到t1表中。方法如下:
INSERT INTO t1(id,username,score)
SELECT t2.id,t2.username,t2.score FROM t2 where t2.username = 'lucy'
前面兩種方式是更新表的記錄,這種方式是插入一條新的記錄。其實(shí),從腳本可以看出,這個(gè)方法就是將查詢和插入兩個(gè)步驟合二為一。
以上就是小編為大家?guī)淼腗ySQL查詢結(jié)果復(fù)制到新表的方法(更新、插入)全部內(nèi)容了,希望大家多多支持錯(cuò)新站長站~
新聞熱點(diǎn)
疑難解答
圖片精選