如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, 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;
代码如下:
set @mycnt = 0;
select * from (
select (@mycnt := @mycnt + 1) as ROWNUM , othercol
from tblname order by othercol
) as A where othercol=OneKeyID;
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号