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 就保存了行编号信息。这个行编号信息的某种用途在于当你需要根据需要对数据按照某种规则排序并取出排序之后的某一行数据,并且希望知道这行数据在之前排序中的位置时就用得着了。
SELECTb.*
FROM
article
LEFT JOIN (
SELECT
@rownum :=@rownum + 1 AS rownum,
article.*
FROM
(SELECT @rownum := 0) r,
article
) b ON article.id = b.id
mysql没有rownum,只能这样进行计算
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)