• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL中在查询结果集中得到记录行号的方法

MySQL中在查询结果集中得到记录行号的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql 行号,mysql获取行号,mysql 查询行号,mysql 取行号,mysql 显示行号等相关知识,希望本文的分享对您有所帮助

如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数。 Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的 ROWNUM ; MS SQL Server 则在 2005 版本中提供了 ROW_NUMBER() 函数;但在 MySQL 中似乎还没有这样的系统自带功能。虽然 LIMIT 可以很方便的对返回的结果集数量和位置进行过滤,但过滤出来的记录的行号却没办法被 SELECT 到。据说 MySQL 是早就想增加这个功能了,但我是还没找到。

解决方法是通过预定义用户变量来实现:
set @mycnt = 0;
select (@mycnt := @mycnt + 1) as ROWNUM , othercol from tblname order by othercol;
</div>
这样查询出来的结果集中 ROWNUM 就保存了行编号信息。这个行编号信息的某种用途在于当你需要根据需要对数据按照某种规则排序并取出排序之后的某一行数据,并且希望知道这行数据在之前排序中的位置时就用得着了。比如:
set @mycnt = 0;
select * from (
    select (@mycnt := @mycnt + 1) as ROWNUM , othercol
     from tblname order by othercol
) as A where othercol=OneKeyID;
</div>
当然你也可以通过创建临时表的方法把查询结果写到某个拥有 auto_increment 字段的临时表中再做查询,但考虑到临时表在 MySQL master / slave 模式下可能产生的问题,用这样临时用户定义变量的方式来计算查询结果集每一行对应的行号还是更为简洁 -- 除非你愿意在 PHP 或其他语言脚本中对返回的整个结果集再作处理。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL中在查询结果集中得到记录行号的方法

相关文章

  • 2017-05-11mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法
  • 2018-12-05MySQL中文乱码问题的解决第1/2页
  • 2018-12-05关于MySQL 的高可用性:Keepalived 双主热备
  • 2018-12-05 [话题讨论]想成立一个程序员关爱基金
  • 2018-12-05phpmyadmin出现#2003服务器无响应解决方法小结
  • 2018-12-05SQL语句练习实例之三平均销售等待时间
  • 2018-12-05自动定时备份sqlserver数据库的方法
  • 2018-12-05DriverManager连接mysql数据库在实际开发中使用
  • 2018-12-05MongoDB插入查询数据(二), 条件查询
  • 2018-12-05Mysql 协议嗅探是什么

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL高级四——自定义条件和处理
    • 有关mysql中ROW_COUNT()的小例子
    • Oracle教程 误添加数据文件删除方法
    • MySQL 的CASE WHEN 语句使用说明
    • MSSQL2000安全设置图文教程
    • MongoDB C# 驱动
    • 浅谈MySQL中的子查询优化技巧
    • mysql进阶(五)数据表中带OR的多条件查询
    • mysql提示[Warning] Invalid (old?) table or database name问题的解决方法
    • SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有