Select a.*,(@rowNum:=@rowNum+1) as rowNo
From a,
(Select (@rowNum :=0) ) b
oracle :
select a.*,rownum from a
sql server :
select row_number()over(order by XX)as RowNum,* from a
Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的 ROWNUM ; MS SQL Server 则在 2005 版本中提供了 ROW_NUMBER() 函数;但在 MySQL 中似乎还没有这样的系统自带功能。解决方法是通过预定义用户变量来实现:mysql set @mycnt = 0mysql select (@mycnt := @mycnt + 1) as ROWNUM ,NAME fromCHARBASE LIMIT 100这样查询出来的结果集中 ROWNUM 就保存了行编号信息。这个行编号信息的某种用途在于当你需要根据需要对数据按照某种规则排序并取出排序之后的某一行数据,并且希望知道这行数据在之前排序中的位置时就用得着了。为了方便,我们通常将两句合起来执行,以避免变量全局自增:看你的意思行号就是显示顺序号,你的查询结果可以按id升序排序(order by id),这样查询结果的顺序就是显示的顺序,这个行号可以在程序里加上,不用在数据库 *** 作。另外最好是加上一个排序值得字段,这样可以随时调整显示顺序。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)