[英]SELECT Mysql - Replacing value in one column based on another column
這是我的表:
ID | MainLink
----------------------
1 | 1111
2 | 1111
3 | 2222
4 | 3333
5 | 2222
6 | 4444
我需要能夠根據MainLink列中的不同值選擇和替換ID值。 ID列的新值必須是找到的第一個ID值。 這就是我想要的:
ID | MainLink
----------------------
1 | 1111
1 | 1111
3 | 2222
4 | 3333
3 | 2222
6 | 4444
希望這很清楚。 感謝您的任何幫助。
這將返回所有MainLinks
和可用ID
的最低值:
SELECT tmp.ID, t.MainLink
FROM Table1 t
JOIN ( SELECT MainLink, MIN(ID) AS ID
FROM Table1
GROUP BY MainLink
) AS tmp ON ( tmp.MainLink = t.MainLink );
結果(參見SQLFiddle上的示例) :
ID MainLinke
1 1111
1 1111
3 2222
4 3333
3 2222
6 4444
您可以使用update
和join
來執行此操作。 關鍵是計算子查詢中每個MainLink
的最小id
:
update table t join
(select MainLink, min(id) as minid
from table t
group by MainLink
) ml
on t.MainLink = ml.MainLink and t.id > ml.minid
set t.id = ml.minid;
我覺得很奇怪你真的想在你的表中創建重復項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.