首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中获取上一次插入IDS

问在MySQL中获取上一次插入IDS
EN

Stack Overflow用户
提问于 2013-12-20 14:37:32
回答 1查看 1.3K关注 0票数 6

是否可以通过一个查询在MySQL中多次插入后获得所有插入的in?示例(摘要):

代码语言:javascript
复制
$ids = array();
$parts = array();
$query = 'INSERT INTO `TABLENAME` (`FIELDS`)  VALUES'; 

$items = array(values);
foreach($items as $item){
   $parts[] = '('.$item['key1'].','.$item['key2']...','.$item['keyN'].')';
}

$query .= implode(',',$parts);
mysqli_query($link,$query);
$ids = ... // getting  ALL inserted IDs
var_dump($ids);

它可以在这里这样做(解决方案之一)。示例(摘要):

代码语言:javascript
复制
$ids = array();

$items = array(values);
foreach($items as $item){
   $query ='INSERT INTO `TABLENAME` (`FIELDS`)  VALUES('.$item['key1'].','.$item['key2']...','.$item['keyN'].')';
   mysqli_query($link,$query);
   $ids[] = mysqli_insert_id($link);
}
var_dump($ids);  

但是,我想:一个查询插入所有条目-一个查询得到所有插入的ids。

更新

我的解决方案(基于问题在MySQL中生成整数序列 )的.Return序列的最后插入by的单一查询。

代码语言:javascript
复制
$query_inserted_ids = "SELECT @row := @row +1 AS row_id
                       FROM TABLENAME , (SELECT @row := LAST_INSERT_ID()-1 )r
                       WHERE @row <(
                       SELECT id
                       FROM  TABLENAME 
                       ORDER BY id DESC
                       LIMIT 1 )";

谢谢大家的关注!

EN

回答 1

Stack Overflow用户

发布于 2013-12-20 15:03:30

MySQL's

代码语言:javascript
复制
SELECT LAST_INSERT_ID()

将返回从多行插入返回的第一个ID。如果你把它和

代码语言:javascript
复制
SELECT ROW_COUNT()

您可以从ID()开始,并按计数()中指定的记录数递增。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20705983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档