rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等

    mysql取第一条数据写法

    1. SELECT * FROM t order by id LIMIT 1;

    oracle取第一条数据写法

    1. SELECT * FROM t where rownum =1 order by id;

    ok,上面是mysql和oracle取第一条数据的写法对比,不过这只是rownum的一种用法,rownum还可以用于批量写数据

    往t表批量写一万条数据:

    1. insert into t(id,date) select sys_guid(),sysdate from dual connect by rownum<=10000;

    oracle原版写法:

    1. select * from (select id,name from t) where rownum <![CDATA[<=]]> to_number(num);

    mysql改写后的SQL:

    1. SELECT
    2. *
    3. FROM
    4. (SELECT
    5. tb.*,
    6. @rownum := @rownum + 1 AS rownum
    7. FROM
    8. (SELECT
    9. id,
    10. NAME
    11. FROM
    12. t) tb,
    13. (SELECT
    14. @rownum := 0) r) AS t
    15. WHERE rownum <= CAST(num AS SIGNED INTEGER) ;