我尽了最大的努力去寻找,但是失败了。我正在开发一个应用程序,我必须使一个系统,以排名用户根据他们的分数,就像这样。在搜索SO之后,我找到了这个查询来创建排名系统
SELECT uid,score,
@curRank := @curRank + 1 AS rank
FROM rankTable p, (SELECT @curRank := 0) r
ORDER BY score desc
但是,我如何才能像在中那样执行此查询来返回特定用户的排名呢
我就是想不出怎么做。
简而言之,我只想建立一个排名系统,就像拥有500万用户一样。任何建议的逻辑都是值得赞赏的。
请帮助,我正在尝试合并模型和关系数据。 class User extends Authenticatable
{
public function rank()
{
return $this->hasOne('App\rank','id','id');
}
} 在我的控制器中 User::with('rank')->first(); 当前结果:[user:[‘用户名’:‘gugu’,排名:‘排名’:3]] 我期望的是:[user:'username':'
我想显示一个页面,其中的用户是按他们的排名。一个排名可以有多个用户(例如,两个用户可以在第二位)和一个用户也可以有多个等级,因为我想保持一个历史性的用户和排名通过时间。
这是User.php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
// ...
public function Ranks() {
return $this->belongsToMany('App\Rank
最近我开发了手机游戏(LAMP + memcached)。
这个游戏有玩家的积分表。该表具有member_id、name、score列。
我想显示排行榜(全球排名)给我们的用户。
只需查询SELECT * FROM score ORDER BY score DESC,并显示结果集。
但我不认为这是个好方法。如果用户达到2000万,这个查询看起来很糟糕。这种情况下的最佳实践是什么?你能给我一些建议吗?
如何查看特定用户的排名?我想要显示每个用户的排名。
我的问题是,已经安装了应用程序(但已删除)的用户如何计算下载量。每一次重复下载是否计算与应用程序图表中的排名相关的每日下载编号,还是一个用户只能贡献一次(在第一次下载时)?
因此,下面的过程基本上是确定iOS应用程序商店和Google商店图表中排名的下载或n次下载吗?
user downloads app for the first time
do n times:
delete app
download app again
我有两个模型:用户和等级
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'username', 'email', '
我正在开发一个应用程序,它允许用户查找产品参考,按关键字进行搜索(使用SQL 2008的全文索引表的FREETEXTTABLE特性)。这些引用是从两个都可靠的不同数据库中提取的。然而,当我按等级排序时,它们不会给出相同的结果。我使用的请求如下:
Select xxx FROM Table as P_TBL
INNER JOIN FREETEXTTABLE(Table, column,'key words',LANGUAGE 1033) AS F_TBL
ON P_TB.id = F_TBL.[Key]
ORDER BY RANK
现在我想根据他们在这两个请求上的排名找到最相关的
我需要为每个联赛创造排名。关系: 团队模型: <?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Team extends Model
{
protected $fillable = ['name', 'league_id', 'stadium'];
public function league() {
return $this->belongsTo('App\League');
}
我正在开发一个Spring,我使用JPA。我的问题是:
我有3个字段(points1、points2和points3),我正在进行排名。所以,我想作为这三个字段的总和来获得这个排名的第一位。
要理解的例子:
SELECT u FROM User u ORDER BY u.totalPoints DESC;
Where u.totalPoints is the sum of points1, points2 and points3.
我该怎么做呢?谢谢
你好啊外面的开发者,
我想在我的程序中创建一个排名列表,为此,我想让mysql数据库的用户按他们的分数排序。我这么做是为了:
select `name`,`points` from users order by `points` desc
为了获得更好的性能,我不想得到所有的用户,只有10+和10-从一个给定的用户,因为我不想显示整个排名名单在程序无论如何。有人能帮我吗?