2014-03-13 172 views
1

如何在同一存储过程中选择多个插入的记录?Mysql - 选择多个插入的记录

INSERT INTO cars (type, status_id) 
VALUES ('GM',1), 
     ('Toyota',2), 
     ('Honda',3); 

汽车有一个名为car_id的AUTO_INCREMENT PK字段。 假设表插入

1556 GM 1

1557丰田2

1558本田3

我如何选择呢?

+0

我想也许会得到ROW_COUNT(),然后选择最后一个ROW_COUNT()记录。那会工作吗? – Bergkamp

+0

首先你想要什么....你想插入或计数... – jmail

+1

[mySQL插入多个记录与选择]的可能重复(http://stackoverflow.com/questions/1215788/mysql-inserting-multiple -records-with-a-select) – jmail

回答

1

你可以使用这两个函数的结果:

这样的:

INSERT INTO cars (type, status_id) 
VALUES ('GM',1), 
     ('Toyota',2), 
     ('Honda',3); 

SELECT * 
FROM cars 
WHERE car_id BETWEEN LAST_INSERT_ID() 
       AND LAST_INSERT_ID() + ROW_COUNT() - 1 
; 
1

好吧,很容易解决。

declare new_cars int; 
INSERT INTO cars (name, type) 
VALUES ('GM',1), 
     ('Toyota',2), 
     ('Honda',3); 
select row_count() into new_cars; 
select * from cars 
order by car_id desc 
limit new_cars; 
+0

有没有更好的方法? – Bergkamp