mysql 生成唯一值_php – 如何为MySQL中的唯一值生成唯一编号?

我创建了一个测试表来模拟聚合标记的内部选择.然后,允许按列顺序切换,我尝试简单地使用您的方法,因为您已经在查询中使用变量.

SELECT std_login_id AS ID, STD_NAME,

(@rnk := IF(@track = TOTAL_MARKS , @rnk, @rnk + 1)) AS RANK,

(@track:= TOTAL_MARKS) as TOTAL_MARKS

FROM ( select *

from testtable

ORDER BY total_marks DESC) ob

CROSS JOIN (SELECT @rnk := 0, @track := 0) AS starter;

我相信这会产生你想要的东西.可能有更好的方法,但现在已经很晚了,所以我会选择它. 🙂

如果您想快速测试,只需粘贴并转到:

create table testtable (

std_login_id int(11) primary key auto_increment,

total_marks int(11),

std_name varchar(10)

);

insert into testtable (total_marks,std_name) values (10,'name1');

insert into testtable (total_marks,std_name) values (15,'name2');

insert into testtable (total_marks,std_name) values (15,'name3');

insert into testtable (total_marks,std_name) values (40,'name4');

insert into testtable (total_marks,std_name) values (50,'name5');

insert into testtable (total_marks,std_name) values (15,'name6');

insert into testtable (total_marks,std_name) values (10,'name7');

insert into testtable (total_marks,std_name) values (20,'name8');

insert into testtable (total_marks,std_name) values (10,'name9');

insert into testtable (total_marks,std_name) values (10,'name10');

insert into testtable (total_marks,std_name) values (50,'name11');

insert into testtable (total_marks,std_name) values (10,'name12');

insert into testtable (total_marks,std_name) values (25,'name13');

insert into testtable (total_marks,std_name) values (10,'name14');

insert into testtable (total_marks,std_name) values (50,'name15');

insert into testtable (total_marks,std_name) values (10,'name16');

insert into testtable (total_marks,std_name) values (50,'name17');

insert into testtable (total_marks,std_name) values (20,'name18');

insert into testtable (total_marks,std_name) values (40,'name19');

insert into testtable (total_marks,std_name) values (30,'name20');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值