gpt4 book ai didi

Eloquent 查询中的 MySQL 变量

转载 作者:行者123 更新时间:2023-11-29 07:39:14 25 4
gpt4 key购买 nike

我对 Laravel 中的 Eloquent Builder 有疑问

$query = EntryUserVote::query()
->join('users', 'challenge_entry.user_id', '=', 'users.id')
->groupBy(['user_id'])
->select([
'users.id as user_id',
'users.name as username',
DB::raw('count(*) AS amount'),
DB::raw("@row := @row + 1 as position")
])
->orderBy('amount', 'desc');

我的存储库中有那个查询,我基本上需要添加一个“等级”,这是 position 变量所指的,但我需要知道如何在 Eloquent 中初始化该变量。执行 from 调用没有意义,因为我已经通过 Eloquent 模型定义了表...

你们会怎么做?单独的 SET 语句?

最佳答案

您可以在原始语句中使用 set 关键字初始化变量:

DB::statement(DB::raw('set @row=0'));
$query = EntryUserVote::query()
->join('users', 'challenge_entry.user_id', '=', 'users.id')
->groupBy(['user_id'])
->select([
'users.id as user_id',
'users.name as username',
DB::raw('count(*) AS amount'),
DB::raw("@row := @row + 1 as position")
])
->orderBy('amount', 'desc');

关于Eloquent 查询中的 MySQL 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47281614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com