mysql 用 @rownum := @rownum+1 实现 rownum 功能
2017-03-01 17:11
411 查看
【一条sql语句完成,不set变量】
SELECT @rownum := @rownum+1 AS rownum,
table1.*
FROM (SELECT @rownum:=0) r ,
table1;
oracle: SELECT T.*,rownum FROM (SELECT BMBH,CC,SSBMBH FROM ZC_BM WHERE SFSY=1
START WITH BMBH='000215'
CONNECT BY PRIOR BMBH=SSBMBH
ORDER BY CC DESC,BMBH) T WHERE rownum=1
执行结果:
改成 mysql
方法一:
SELECT T.*,@rownum := @rownum+1 AS rownum FROM (SELECT @rownum:=0) r ,(
SELECT BMBH,CC,SSBMBH FROM ZC_BM WHERE FIND_IN_SET(BMBH, getChildList('000215')) ORDER BY CC DESC,BMBH
) T having rownum=1
大神语录:
结果不重要,原理要清楚,where的过滤对象是表(包括临时表),rownum是你的临时变量,要么就把这个变量放到临时表了,如@三分后七分 所做的那样,要么就用having过滤,因为having过滤的是返给客户端的数据。
方法二:
select *
from(
select t.*,@rownum:=@rownum+1 rownum
from(select @rownum:=0)r,( SELECT BMBH,CC,SSBMBH FROM ZC_BM WHERE FIND_IN_SET(BMBH, getChildList('000215')) ORDER BY CC DESC,BMBH) t)c
where c.rownum=1
SELECT @rownum := @rownum+1 AS rownum,
table1.*
FROM (SELECT @rownum:=0) r ,
table1;
oracle: SELECT T.*,rownum FROM (SELECT BMBH,CC,SSBMBH FROM ZC_BM WHERE SFSY=1
START WITH BMBH='000215'
CONNECT BY PRIOR BMBH=SSBMBH
ORDER BY CC DESC,BMBH) T WHERE rownum=1
执行结果:
改成 mysql
方法一:
SELECT T.*,@rownum := @rownum+1 AS rownum FROM (SELECT @rownum:=0) r ,(
SELECT BMBH,CC,SSBMBH FROM ZC_BM WHERE FIND_IN_SET(BMBH, getChildList('000215')) ORDER BY CC DESC,BMBH
) T having rownum=1
大神语录:
结果不重要,原理要清楚,where的过滤对象是表(包括临时表),rownum是你的临时变量,要么就把这个变量放到临时表了,如@三分后七分 所做的那样,要么就用having过滤,因为having过滤的是返给客户端的数据。
方法二:
select *
from(
select t.*,@rownum:=@rownum+1 rownum
from(select @rownum:=0)r,( SELECT BMBH,CC,SSBMBH FROM ZC_BM WHERE FIND_IN_SET(BMBH, getChildList('000215')) ORDER BY CC DESC,BMBH) t)c
where c.rownum=1
相关文章推荐
- mysql 用 @rownum := @rownum+1 实现 rownum 功能
- MySQL中实现rownum功能类似的语句
- mysql中实现rownum功能
- Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
- Mysql实现oracle的rownum功能
- mysql记录集中记录序号,MySQL中实现rownum功能类似的语句
- MySQL中实现rownum功能类似的语句
- Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
- mysql实现oracle的rownum功能
- MySql中类似于 SELECT INTO功能的实现
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能.
- php+mysql实现仿微博短网址跳转功能
- MySQL中用select实现TOP N功能 及分页
- [ORACLE]ORACLE 实现mysql中的limit 功能
- 具有负载均衡功能的MySQL服务器集群部署及实现
- MySQL中的ROWNUM的实现
- mysql实现rownum问题
- 也谈MySQL中实现ROWNUM
- MySQL中的ROWNUM的实现
- mssql中isnull函数功能在mysql中如何实现...