2012-11-10 72 views
1

行,所以我這樣做mysql命令:如何插入查詢結果爲列的MySQL

SELECT CONCAT(SUBSTRING(Familenaam,1,4),SUBSTRING(Voornaam,1,4)) AS `Login` FROM tblusers 

這讓我對約翰尼拉鈴鐺結果-_> johncowb(=登錄名),但是這是一個查詢。

我希望在我的表tblusers在列「登錄」的結果。 我該怎麼做?

回答

3

可以使用INSERT INTO .. SELECT等。所以:

INSERT INTO tblusers(login) 
SELECT 
    CONCAT(SUBSTRING(Familenaam, 1 ,4), SUBSTRING(Voornaam,1,4)) 
FROM tblusers 

如果要更新,你可以這樣做:

UPDATE tblusers t1 
INNER JOIN 
(
    SELECT 
    userid, 
    CONCAT(SUBSTRING(Familenaam, 1 ,4), SUBSTRING(Voornaam,1,4)) login 
    FROM tblusers 
) t2 ON t1.userid = t2.userid 
SET t1.login = t2.login 
+0

謝謝!但我實際上需要更新當前用戶,你知道該怎麼做嗎? –

+0

@JohnSmittheeerrs - 是的,看我的編輯。請注意,我使用'userid'作爲連接的條件,您可以根據表結構使用其他列。 –

+0

好的,謝謝,我要給它一個旋轉:p 編輯:它的作品!非常感謝:D –

1

你會做:

INSERT INTO tblusers (Login) 
SELECT CONCAT(SUBSTRING(Familenaam,1,4),SUBSTRING(Voornaam,1,4)) AS `Login` FROM tblusers; 

這基本上等於在說「插入我的‘SELECT’查詢結果到表‘向tblUsers’的‘登錄’列

+0

謝謝!但我實際上需要更新當前用戶,你知道該怎麼做嗎? –

+0

我不確定你的意思。你想更新當前用戶的登錄名? – mcriecken

+0

此時的用戶還沒有登錄名。因此,在名字和姓氏列旁邊必須帶有loginame的登錄列。 (columon已經生成,但值仍爲空) –