在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);
答案 0 :(得分:0)
MySQL仅返回最后一个插入ID和受影响的行。只有一种方法可以做你想要的 - 执行你的子选择到数组,并使用foreach做单个插入。但它的运行速度慢了一点!或插入后执行类似的操作:
SELECT id FROM temp_users WHERE email IN (select email from jos_users)
您可能理解逻辑