MySQL:同一查询中的INSERT和SELECT

时间:2011-10-22 16:47:19

标签: mysql select insert

我有一个棘手的SQL查询来创建,如果可能的话会为我节省很多PHP代码。

所以我有一个HTML表单,访问者可以创建一个用户帐户,其中包含名称电子邮件密码字段利益

对于名称电子邮件密码,我有一个简单的INSERT查询,可将此信息输入数据库{{ 1}},但兴趣字段可以有多个条目,因此这些数据存储在多对多连接表中(usersinterests)。

为了让我在表 user_interests 中输入这些兴趣,我需要获取从初始user_interests查询自动递增的用户ID号加上另一个INSERT的循环用户选择的每个“兴趣”。我可以在一个SQL查询中完成所有这些吗?

2 个答案:

答案 0 :(得分:1)

好吧,在MySQL中,INSERT语句只插入一个表中。所以不,用一个查询来完成这个是不可能的。但你可以用两个查询来做到这一点。 MySQL支持一种语法,您可以使用单个查询插入多行:

insert into user_interests (user_id, interest_id) values (1,1), (1,2), (1,3)

P.S。我确实理解正确的兴趣是分类器,并且向interests表添加新行超出了这个问题的范围,对吧?

答案 1 :(得分:1)

如果你想用一个命令来做这个,那么学习如何编写MySql存储过程听起来是个好例子。结果也会快得多。

http://dev.mysql.com/doc/refman/5.0/en/stored-routines-last-insert-id.html

http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-compound-statements.html