INSERT与SELECT

Kyl*_*yle 270 mysql sql insert-select

我有一个使用select插入的查询:

INSERT INTO courses (name, location, gid) 
            SELECT name, location, gid 
              FROM courses 
             WHERE cid = $cid
Run Code Online (Sandbox Code Playgroud)

是否可以只为插入选择"名称,位置",并将gid设置为查询中的其他内容?

And*_*rew 520

是的,绝对,但请检查您的语法.

INSERT INTO courses (name, location, gid)
SELECT name, location, 1
FROM   courses
WHERE  cid = 2
Run Code Online (Sandbox Code Playgroud)

当然,您可以放置gid与其位置相同类型的常量,而不仅仅是1.而且,我只是弥补了cid价值.

  • 工作了,非常感谢你.使用"插入选择"时,字段名称周围不需要括号.但是当你开始在select的顶部指定值时,显然你需要围绕字段名称(). (2认同)

Dum*_*dan 29

是的.你可以写 :

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

或者您可以从选择的另一个连接中获取值...


Rol*_*DBA 7

正确的语法:选择拼写错误

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


kle*_*tte 5

当然,你想用什么来做gid?一个静态值,PHP var,...

静态值1234可能是这样的:

INSERT INTO courses (name, location, gid)
SELECT name, location, 1234
FROM courses
WHERE cid = $cid
Run Code Online (Sandbox Code Playgroud)