Вставить с помощью SELECT - PullRequest
       27

Вставить с помощью SELECT

256 голосов
/ 22 марта 2011

У меня есть запрос, который вставляет, используя select:

INSERT INTO courses (name, location, gid) 
            SELECT name, location, gid 
              FROM courses 
             WHERE cid = $cid

Можно ли выбрать только «имя, местоположение» для вставки и установить gid для чего-то еще в запросе?

Ответы [ 6 ]

501 голосов
/ 22 марта 2011

Да, конечно, но проверьте свой синтаксис.

INSERT INTO courses (name, location, gid)
SELECT name, location, 1
FROM   courses
WHERE  cid = 2

Вы можете поставить вместо него константу того же типа, что и gid, а не только 1, конечно.И я только что составил cid значение.

27 голосов
/ 22 марта 2011

Да, это так.Вы можете написать:

INSERT INTO courses (name, location, gid) 
SELECT name, location, 'whatever you want' 
FROM courses 
WHERE cid = $ci

или вы можете получить значения из другого объединения выбора ...

7 голосов
/ 22 марта 2011

Правильный синтаксис: выбор орфографии был неправильным

INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want' 
FROM courses 
WHERE cid = $ci 
5 голосов
/ 22 марта 2011

Конечно, что вы хотите использовать для GID?статическое значение, PHP var, ...

Статическое значение 1234 может быть следующим:

INSERT INTO courses (name, location, gid)
SELECT name, location, 1234
FROM courses
WHERE cid = $cid
1 голос
/ 22 марта 2011

Я думаю, что ваше утверждение INSERT неверно, см. Правильный синтаксис: http://dev.mysql.com/doc/refman/5.1/en/insert.html

edit: как уже указал Эндрю ...

0 голосов
/ 15 октября 2015

Правильный синтаксис для вашего запроса:

INSERT INTO courses (name, location, gid) 
SELECT (name, location, gid) 
FROM courses 
WHERE cid = $cid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...