php对分数排序,php-MySQL @grouping结果按ID并按分数排序”问题

我设置了以下数据库格式:

id fid name time flag

1 224 Mike 112 3

2 555 John 98 5

3 224 Mike 101 0

4 121 Ann 80 1

5 224 Mike 55 7

6 121 Ann 150 4

我使用以下查询对按fid(或名称)分组的内容进行排序和显示,并按最短时间对其进行排序:

SELECT id, fid, name, MIN(time), flag FROM dblist GROUP BY name ORDER BY MIN(time)

当我按需要获取输出时,此方法工作正常.就像是:

name time

Mike 55

Ann 80

John 98

但是,如果尝试显示fid,flag或与该特定时间记录相关联的任何其他字段,则会得到一些其他值(大概是查询首先出现).

我想得到的是以下格式:

id fid name time flag

5 224 Mike 55 7

4 121 Ann 80 1

2 555 John 98 5

我想知道是否有一种方法可以仅使用一个数据库和其他一些查询语法来完成此任务?

谢谢.

解决方法:

在两个条件1上使用自我连接,每个条件具有名称,每个名称的时间得分最少,按结果分组是不确定的,不能保证分组的最新或第一条记录的顺序

select t.* from t

join (SELECT name, MIN(`time`) `time`

FROM t GROUP BY name) t1

on(t.name = t1.name and t.`time`=t1.`time`)

order by t.`time`

标签:sql,mysql,php,sorting

来源: https://codeday.me/bug/20191121/2054006.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值