我有一個表t1
,除了id
之外,某些行在所有列中都有重複項。
t1
的id
是AUTO_INCREMENT並具有1MIL行。
t2
是一個沒有數據的新表,並且id
不需要AUTO_INCREMENT,因爲我可能會爲此創建一個新列。
從t1複製到新表中t2過濾掉重複行
問:後,我創建t2
,如何從t1
複製到t2
其中不同的值從t1
中的所有列,使t2
有沒有重複的行
我在亞馬遜RDS
ENGINE=InnoDB
t1 - 這是我的
+---+-----+-----+------+-------+
|id |fname|lname|mytext|morevar|
|---|-----|-----|------|-------|
| 1 | joe | min | abc | 123 |
| 2 | joe | min | abc | 123 |
| 3 | mar | kam | def | 789 |
| 4 | kel | smi | ghi | 456 |
+------------------------------+
T2 - 這是我想與
+---+-----+-----+------+-------+
|id |fname|lname|mytext|morevar|
|---|-----|-----|------|-------|
| 1 | joe | min | abc | 123 |
| 3 | mar | kam | def | 789 |
| 4 | kel | smi | ghi | 456 |
+------------------------------+
這是我的企圖最終是什麼,但有:Error Code: 1136. Column count doesn't match value count at row 1
INSERT INTO t2 (id,fname,lname,mytext,morevar)
SELECT DISTINCT st.mytext
FROM t1 st
WHERE st.id>0
AND st.id<=1000
您的示例't1'不僅顯示'mytext'中的重複數據,而且還顯示所有其他列(id爲'除外)中的重複數據。如果數據不同,哪些記錄應該保留(哪些丟失)? – eggyal
@eggyal im不知道你在哪裏看到重複? 't2'是我想要結束的,它不包含數據 –
不,但't1'包含一個副本,並且不清楚爲什麼選擇記錄1而不是記錄2.確實,如果其他值在其他值不同列(但在'mytext'中是一樣的),你可能會選擇記錄2而不是記錄1? – eggyal