[英]Add a specific field into table in SQL
我這樣的一張桌子:
date time user data
131111 111111 Mike 23
131111 121212 Linda 12
131111 131323 Mike 45
我想基於數據庫中的現有數據添加一個名為“ userID”的字段:
date time user userID data
131111 111111 Mike 1 23
131111 121212 Linda 2 12
131111 131323 Mike 1 45
只要userID
是到現有用戶的一對一映射,就可以了。 最好是從1開始到#ofUsers。
有沒有干凈的解決方案?
嘗試這樣的事情:
首先,您添加新列:
ALTER TABLE tab1 ADD userid INT NOT NULL;
然后,您執行以下操作:
UPDATE tab1 t1
INNER JOIN (
SELECT a.user, @rownum := @rownum + 1 AS newID
FROM (
SELECT DISTINCT user
FROM tab1
ORDER BY user
) a
JOIN (
SELECT @rownum := 0
) r
) t2 ON t1.user = t2.user
SET t1.userid = t2.newID
內部查詢為表中的每個不同用戶獲取唯一的ID(從1開始,按字母順序遞增。如果您不關心任何順序,則可以刪除該順序),並相應地更新表。
希望這可以幫助。
ALTER TABLE mytable ADD userID INT;
UPDATE mytable, usertable
SET mytable.userID = usertable.ID
WHERE usertable.user=mytable.user;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.