如何在 Kohana 中使用子查询时获取最后一个插入 ID



在 Kohana 中使用子查询时如何返回正确的 $insert_id?

我正在使用查询方法来返回 $insert_id 和 $affected_rows。它为 $affected_rows 返回正确的值,但为 $insert_id 返回不正确的"1"。

查询如下:

$sub = DB::select('id', 'username', 'email', 'lastVisitDate')->from('jos_users');
$qry_migrate_users = DB::insert('temp_users', array('old_id', 'username', 'email_work', 'last_login'))->select($sub);
list($insert_id, $affected_rows) = $qry_migrate_users->execute($this->conn_target);

MySQL只返回最后一个插入ID和受影响的行。 只有一种方法可以做你想做的事情 - 执行你的子选择到数组,并使用foreach执行单次插入。但是操作速度要慢一点!或者在插入后做这样的事情:

SELECT id FROM temp_users WHERE email IN (select email from jos_users)

你可能明白其中的逻辑

最新更新