Скопируйте некоторые значения, чтобы создать еще одну строку в MYSQL - PullRequest
0 голосов
/ 08 июля 2011

Это говорит мне, что где-то в этом есть синтаксическая ошибка, однако каждый запрос работает индивидуально, только когда я пытаюсь объединить их, он не работает.

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

Я здесь совершенно тупой, есть предложения?

Ответы [ 2 ]

5 голосов
/ 08 июля 2011

Использование:

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 словами , но не всегда.

1 голос
/ 08 июля 2011

Для этого вы можете использовать Insert-Select .

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