Laravel/Lumen 中怎么执行以下 SQL 语句?
更新多行并获取被更新行的主键ID:
请问如何在Laravel/Lumen中使用DB类执行并获取(SELECT @ids;)的查询结果?
SET @ids = 0;SET @ids = NULL;
UPDATE `users`
SET `state` = 1
WHERE `state` = 0
AND (SELECT @ids := CONCAT_WS(',', `id`, @ids))
LIMIT 2;
SELECT @ids;
请问如何在Laravel/Lumen中使用DB类执行并获取(SELECT @ids;)的查询结果?
1 个回复
NowAnti
赞同来自:
1、自定义函数 f_getPhone_ids 获取被更新的记录的 id
2、调用之
$rows = DB::select("SELECT f_getPhone_ids({$this->user_id}, {$size}, {$this->update_at}) AS ids");
if(!$rows[0]->ids) return response()->json(['state' => true, 'data' => 'no_data'], 200);
//获取新号码
$result = DB::table('phonenumbers')->whereIn('id', explode(',', $rows[0]->ids))->list('phonenumber');
return response()->json(['state' => true, 'data' => $result], 200);