2

在 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);
4

1 回答 1

0

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

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

你可能明白其中的逻辑

于 2014-11-26T12:15:52.123 回答