mysql中獲取指定一條資料排名

2021-10-22 11:38:10 字數 1638 閱讀 5895

業務中需要根據某個字段大小來進行資料的排名 方法如下

表設計:

create table `yl_solo` (

`id` int(11) not null auto_increment,

`isuse` tinyint(1) not null default '1',

`estate` tinyint(1) not null default '1',

`userid` int(11) not null default '0' comment '使用者id',

`username` varchar(50) not null default '' comment '姓名',

`address` varchar(255) not null default '' comment '地區',

`specialty` varchar(255) not null default '' comment '特長',

`pictureid` int(11) not null default '0' comment '**',

`createtime` int(11) not null default '0' comment '時間',

`makelist` int(11) not null default '0' comment '打榜了熱度',

`experience` int(11) not null default '0' comment '經驗',

`level` int(11) not null default '0' comment '級別1(a)2(b)3(c)4(d)5(e)',

primary key (`id`)

) engine=innodb auto_increment=5 default charset=utf8mb4 comment='個人出道';

sql語句:

select

userid,

username,

pictureid as imgurl,

address,

specialty,

makelist,

rank

from

( select

d.*,(

@rowno := @rowno + 1

) as rank

from

( select

a.userid,

a.pictureid,

a.address,

a.specialty,

a.makelist,

a.estate,

a.username

from

yl_solo a

order by

a.makelist desc

) d,(

select

( @rowno := 0 )) c

) ewhere

userid = 13589 and estate = 1

此sql是根據makelist來進行的排名

結果:

mysql隨機獲取一條或者多條資料

研究一些隨機的因素,主要是講究效率問題。語句一 select from users order by rand limit 1 mysql手冊裡面針對rand 的提示大概意思就是,在 order by從句裡面不能使用rand 函式,因為這樣會導致資料列被多次掃瞄,導致效率相當相當的低,效率不行,切忌...

mysql隨機獲取一條或者多條資料

轉來備份 研究一些隨機的因素,主要是講究效率問題。語句一 select from users order by rand limit 1 mysql手冊裡面針對rand 的提示大概意思就是,在 order by從句裡面不能使用rand 函式,因為這樣會導致資料列被多次掃瞄,導致效率相當相當的低,效率...

mysql隨機獲取一條或者多條資料

轉來備份 研究一些隨機的因素,主要是講究效率問題。語句一 select from users order by rand limit 1mysql手冊裡面針對rand 的提示大概意思就是,在 order by從句裡面不能使用rand 函式,因為這樣會導致資料列被多次掃瞄,導致效率相當相當的低,效率不...