2011-07-08 19 views
0

它告訴我,在這個地方有一個語法錯誤,但是每個查詢單獨工作,只是當我試圖將它們合併,它不工作。複製一些值在MYSQL中創建另一行

INSERT INTO users(username, password , callsign, macroregion, privelages) 
VALUES ((SELECT username, password, callsign, macroregion, privelages 
      FROM users 
      WHERE username = 'someuser' 
      LIMIT 1)) 

我完全難住這裏,有什麼建議嗎?

回答

5

用途:

INSERT INTO users(username, password , callsign, macroregion, privelages) 
SELECT username, password, callsign, macroregion, privelages 
    FROM users 
WHERE username = 'someuser' 
LIMIT 1 

如果你想使用SELECT語句的INSERT語句提供值,你忽略了VALUES條款。並且當它們是MySQL reserved words時,並不是所有的時候都用反引號(`)附上列/表名。

+0

@RVward:是的,你不需要括號或VALUES條款。這在我所瞭解的每個數據庫(Oracle,MySQL,SQL Server等)上都是一致的。 –

+0

對不起,你猜這只是我之前忽略的一些東西。謝謝你的幫助。 –

+0

@RVward:你的意思是這個答案還沒有真正解決你的問題? –

1

您可以使用Insert-Select

INSERT INTO users(username, password , callsign, macroregion, privelages) 
SELECT username, password, callsign, macroregion, privelages 
     FROM users 
     WHERE username = 'someuser' 
     LIMIT 1 
相關問題