MYSQL获得查询记录的行号

对于获得查询记录的行号这一功能,Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的ROWNUM,MS SQL Server 则在 2005 版本中提供了ROW_NUMBER()函数。但在 MySQL 中似乎还没有这样的系统自带功能 = =!真是悲剧啊~

好在民间的力量总是强大的,我们可以自己构造一个类似的功能!

表 a:
UID Money
2 444
1 222
3 555
4 6666
想要以Money排序取得排行号:SQL文如下:

Select UID,(@rowNum:[email protected]+1) as rowNo
From a,
(Select (@rowNum :=0) ) b
Order by a.Money Desc

输入结果如下:

UID rowNo
4 1
3 2
2 3
1 4

时间: 2024-11-06 07:29:50

MYSQL获得查询记录的行号的相关文章

mysql随机查询记录的高效率方法

mysql使用rand随机查询记录的高效率方法 一直以为mysql随机查询几条数据,就用 SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了. 但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低. You cannot use a column with RAND() values in an ORDER BY clause

Mysql编辑工具中使用(Navicat查询结果显示行号)

select @rownum:=@rownum+1 as rownum,a.roleId from base_userroles a,(select @rownum:=0) t where a.roleId='admin';

一句话实现Mysql查询结果带行号

SELECT @rowno:=@rowno + 1 AS rowno,a.* FROM tableName a,(SELECT @rowno:=0) b

mysql 慢查询记录方法

========================================================= 方法一: 这个方法我正在用,呵呵,比较喜欢这种即时性的. Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来. mysql> show variables like 'long%';     注:这个long_query_time是用来定义慢于多少秒的才算“慢查询”+-----------------+-----------+| Variable_name   |

查询中显示MySQL表中的行号

如果我们要想在查询中显示MySQL表的行号,这里我们需要借助在查询语句中定义一个变量.因为MySQL没有专门的显示行号的函数,这一点不像Oracle中的rownum 先来看一个MySQL数据库的表截图,这个截图是没有行号的显示效果 下面为了显示行号的SQL SELECT (@rownum:=@rownum+1) rownum, a.imgPath FROM tb_goods_img a,(SELECT (@rownum:=0)) b 有行号的截图如下 技术提升:我们一起来思考一个问题,虽然上面的

创建角色随机名字(mysql抽取随机记录)和mysql游标的使用

最近在开发中遇到了一些问题,在此记录一下解决的方法,已作备忘. 1.现在创建游戏角色的时候,基本上都是支持角色名字随机的,以前此功能在客户端用代码实现,然后向服务器请求并验证,后来发现有时候连续几次都失败,所以改成在服务器实现.实现方法主要考虑使用mysql随机查询记录,在网上查了很多方案,然后用在了我们游戏中. 实现方案是,将所有随机名字都插入到一张表中,然后从中随机取一条当前角色表中没有出现过的名字. BEGIN DECLARE randnum int DEFAULT 0; SELECT F

MySQL高效获取记录总数

通常mysql获取查询记录总数我们使用如下语句: SELECT COUNT(*) FROM users WHERE k='avs';  或:SELECT id FROM goods WHERE k='avs' LIMIT 10; 但是记录总数总是需要单独的语句来查询,例如在分页查询程序中就有这样的问题,其实mysql可以在一次查询中获取记录和总数的,这就是要使用SQL_CALC_FOUND_ROWS参数,使用方法如下: SELECT SQL_CALC_FOUND_ROWS goods WHERE

mysql慢查询分析工具和分析方法

1.mysql慢查询分析工具 1.参考文档: http://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/ http://isadba.com/?p=655 官方文档: https://github.com/box/Anemometer 数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观. 下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer. 在使用之前

mysql带行号查询

oracle中可以用rownum带行号输出,例如:select rownum,u.name,u.age from user u; 但是mysql里面没有rownum,所以怎么办嗯? 办法:SELECT @rownum:[email protected]+1 AS rownum, user.*  FROM (SELECT @rownum:=0) r, user; 原文地址:https://www.cnblogs.com/hyc-go/p/11126462.html