您的位置:首页 > 数据库 > MySQL

Mysql 实现 Rownum() 排序后根据条件获取名次

2016-05-09 16:22 661 查看

初始化表结构

DROP TABLE IF EXISTS `data`;
CREATE TABLE `data` (
`dates` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`id` int(11) DEFAULT NULL,
`result` varchar(255) CHARACTER SET utf8 DEFAULT NULL
);
INSERT INTO `data` (`dates`, `id`, `result`) VALUES ('2015109101', 1, '胜');
INSERT INTO `data` (`dates`, `id`, `result`) VALUES ('2015110101', 2, '负');
INSERT INTO `data` (`dates`, `id`, `result`) VALUES ('2015109101', 3, '负');
INSERT INTO `data` (`dates`, `id`, `result`) VALUES ('2015109101', 4, '胜');
INSERT INTO `data` (`dates`, `id`, `result`) VALUES ('2015110101', 5, '胜');
INSERT INTO `data` (`dates`, `id`, `result`) VALUES ('2015109101', 6, '负');
INSERT INTO `data` (`dates`, `id`, `result`) VALUES ('2015109101', 7, '胜');
INSERT INTO `data` (`dates`, `id`, `result`) VALUES ('2015110101', 8, '负');


排序

select @rownum:=@rownum+1 AS rownum,id,dates
from
`data`,(SELECT @rownum:=0) r
ORDER BY dates;


结果



条件查询

SELECT rownum,id
from
(select @rownum:=@rownum+1 AS rownum,id,dates
from
`data`,(SELECT @rownum:=0) r
ORDER BY dates)b
WHERE id =2;


结果



写在最后的话

获取你有更好的方法在mysql中来实现Rownum(),欢迎不吝赐教。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: