簡體   English   中英

在SQL中將特定字段添加到表中

[英]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

sqlfiddle演示

內部查詢為表中的每個不同用戶獲取唯一的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM