Mysql 实现 Rownum() 排序后根据条件获取名次
程序员文章站
2022-06-08 12:18:54
...
初始化表结构 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` ( `dat
初始化表结构
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(),欢迎不吝赐教。
上一篇: MySQL保存中文乱码的原因和解决办法
下一篇: php codeigniter