使用子查询和数据 - MySQL

时间:2010-10-11 11:00:50

标签: php mysql

在mysqli中插入时,是否可以使用子查询并同时使用值中的数据?

insert into articles(description) values('Information');
insert into blogs(blog, article_id) values('example.com/', SELECT LAST_INSERT_ID());

2 个答案:

答案 0 :(得分:3)

是的,你可以。只需将子查询包装在括号中。例如:

CREATE TABLE articles (id int not null primary key, description varchar(50));
Query OK, 0 rows affected (0.06 sec)

CREATE TABLE blogs (id int not null primary key, blog varchar(50), article_id int);
Query OK, 0 rows affected (0.06 sec)

INSERT INTO articles (description) VALUES ('Information');
Query OK, 1 row affected, 1 warning (0.04 sec)

INSERT INTO blogs (blog, article_id) VALUES ('example.com/', (SELECT LAST_INSERT_ID()));
Query OK, 1 row affected, 1 warning (0.04 sec)

但正如上面评论中提到的@Pekka,在这种情况下,您甚至不需要子查询。这会有效:

INSERT INTO blogs (blog, article_id) VALUES ('example.com/', LAST_INSERT_ID());

答案 1 :(得分:0)

您可能希望改用insert...select

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

所以它会像

insert into blogs(...) select 'example.com/', last_insert_id()