这次面试,经理问了这样一个问题:
有一张表,id不连续,我如何查出第3行至第5的数据,用的mysql数据库。
因为在医药进销存系统中做过分页,用的oracle,写过查询第几行至第几行的sql。所以直接就说了,数据库有rownum。sql语句为:
<span style="font-family:KaiTi_GB2312;font-size:18px;">SELECT
rn,
user_id
FROM
(
SELECT
ROWNUM rn,
user_id,
USER_NAME
FROM
t_user
WHERE
ROWNUM <= 5
)
WHERE
rn >= 3</span>
还算比较顺利,但回来查了,我有很多没考虑到。
1.rownum只是oracle中有。
2.rownum还有很多需要注意的地方。记得DRP中的分页查询强调了3层嵌套。源码是:
<span style="font-family:KaiTi_GB2312;font-size:18px;">SELECT
user_id,
user_name,
PASSWORD,
contact_tel,
email,
create_date
FROM
(
SELECT
ROWNUM rn,
user_id,
user_name,
PASSWORD,
contact_tel,
email,
create_date
FROM
(
SELECT
user_id,
user_name,
PASSWORD,
contact_tel,