2016-02-19 65 views
0

我有一個包含這樣的事情 ╔═══════╦══════════╗ ║ EMPID ║ UserName ║ ╠═══════╬══════════╣ ║ 1 ║ Josh ║ ║ 2 ║ Kate ║ ║ 3 ║ Josh ║ ║ 4 ║ Kate ║ ║ 5 ║ Kate ║ ║ 6 ║ Josh ║ ║ 7 ║ Morgan ║ ╚═══════╩══════════╝ 我想複製所有具有凱特行,但在凱西的重複更換凱特,然後複製包含約什都行,但更換的表與Joshy重複作爲用戶名。我不知道如何去做這件事。請問某位MySQL專家能幫忙嗎?複製SQL行和重命名複製列

+0

所以你想保留現有的行,就像你有他們,只需添加3凱西行和3喬西行?準確地說是 – trincot

+0

。我希望能夠選擇與凱特複製他們的行,但然後用Kathy替換重複中的凱特。與Josh相同 –

+0

* emp_id *怎麼樣:它不應該是唯一的嗎? – trincot

回答

1

你可以使用插入這些變種記錄INSERT...SELECT syntax

INSERT INTO mytable (UserName) 
    SELECT 'Kathy' 
    FROM mytable 
    WHERE UserName = 'Kate'; 

然後做同樣的事情喬什:

INSERT INTO mytable (UserName) 
    SELECT 'Joshy' 
    FROM mytable 
    WHERE UserName = 'Josh'; 

如果你喜歡一個SQL語句:

INSERT INTO mytable (UserName) 
    SELECT CASE UserName 
       WHEN 'Kate' THEN 'Kathy' 
       WHEN 'Josh' THEN 'Joshy' 
      END 
    FROM mytable 
    WHERE UserName IN ('Kate', 'Josh'); 

在無論如何,SELECT聲明確保您獲得ar (3個結果爲Kate和3個約翰)。並且爲每個結果提供UDPATE語句插入的調整名稱。所以正確的記錄數是以這種方式插入的。