复制一些值以在MYSQL中创建另一行

时间:2011-07-08 17:49:57

标签: mysql sql insert mysql-error-1064

它告诉我这里有一个语法错误,但是每个查询都是单独工作的,只有当我尝试将它们组合起来时它才会起作用。

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

我完全被这里难过,有什么建议吗?

2 个答案:

答案 0 :(得分: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,而不是所有时间。

答案 1 :(得分:1)

您可以使用Insert-Select

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