曲径通幽论坛

标题: limit 的用法 [打印本页]

作者: beyes    时间: 2012-6-18 18:00
标题: limit 的用法
先看一个数据表里的一段数据(实际上,该表中并不止是有 'uid' 和 'username' 这两个字段,且记录也不止这 10 个):
[attach]637[/attach]
现在希望按照 uid 的升序排列列出前 6 个用户名。这里,数据表里共有 10 个用户,而只希望列出 6 个,那么此时就需要 limit 来限制一下这个数据,因此可以执行如下命令:
[Plain Text] 纯文本查看 复制代码
SELECT `uid` , `username` FROM `pw_members` where `uid` < 11 ORDER BY `uid` desc LIMIT 6

执行结果如下图所示:
[attach]639[/attach]
注意,上面的查询语句中,如果不添加 where `uid· < 11 进行限定,那么会对实际记录数中的末 6 条数据进行降序排序,如执行:
[Plain Text] 纯文本查看 复制代码
SELECT `uid` , `username` FROM `pw_members` ORDER BY `uid` desc LIMIT 6;

会得到:
[attach]640[/attach]
这样的结果。

在上面的语句中,使用了 limit num 这样的表达式,它表示显示出检索结果中的前 num 行。

如果想要列出第 3 到第 5 行的结果(按照升序排序),那么可以如下执行语句:
[Plain Text] 纯文本查看 复制代码
SELECT `uid` , `username` FROM `pw_members` LIMIT 2,3;

查询结果如下:
[attach]641[/attach]
注意,实际记录中,'uid' 为 3 的记录已经丢失。因此这里查询到的是第 4 到第 6 行记录。上面的语句中使用的 LIMIT 2,3 这样的限定表示:显示出从第 3 行记录开始的后 3 条记录。也就是说,这里的 2 是个用来定位的偏移值,而 3 是在此偏移值后要显示的行数。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2