PHP学习网
当前位置: 首页 > 数据库 > sql学习笔记 >

MYSQL 的基本操作(限制查询结果)

时间:2009-07-13 22:40 点击:
可以添加到查询语句中的另一个SQL子句是LIMIT。在SELECT查询中,WHERE指示返回哪些记录,ORDER BY决定如何对这些记录进行排序,但是LIMIT用于指定要返回多少条记录。其用法如下: SELECT

可以添加到查询语句中的另一个SQL子句是LIMIT。在SELECT查询中,WHERE指示返回哪些记录,ORDER BY决定如何对这些记录进行排序,但是LIMIT用于指定要返回多少条记录。其用法如下:

SELECT * FROM tablename LIMIT x

在这类查询中,只会返回查询中的前x条记录。为了只返回三条匹配的记录,可以使用如下代码:

SELECT * FROM tablename LIMIT 3

使用下面这种格式:

SELECT * FROM tablename LIMIT x, y

可以返回从x条记录开始的y条记录。为了返回第11~20条记录,可以编写如下代码:

SELECT * FROM tablename LIMIT 10, 10

像PHP中的数组一样,在使用LIMIT时结果集从0开始,因此10代表第11条记录。

可以与WHERE和/或ORDER BY一起使用LIMIT,总是将LIMIT放在查询的末尾。

SELECT which_columns FROM tablename WHERE

conditions ORDER BY column LIMIT x

限制返回的数据量

(1) 选择最后5位注册的用户(参见图5-25)。

SELECT first_name, last_name

FROM users ORDER BY

registration_date DESC LIMIT 5;

图5-25  使用LIMIT子句,查询可以返回数量具体的记录数

要返回最近的任何内容,必须按日期以降序对数据排序。然后,可以向查询中添加LIMIT 5来查看最近的5条记录。

(2) 选择要注册的第二个人(参见图5-26)。

SELECT first_name, last_name

FROM users ORDER BY

registration_date ASC LIMIT 1, 1;

图5-26  借助LIMIT子句,使用LIMIT x, y格式,查询甚至可以返回一组记录中间的记录

这看起来可能有些奇怪,但它确实很好地应用了迄今为止所学的知识。首先,我按registration_date以升序对所有记录排序,因此会返回要注册的第一个人。然后,限制返回的结果开始于1(它将是第二行),并只返回一条记录。

ü提示

l    在显示多页查询结果时(在多个页面上成块显示它们),常常使用LIMIT x, y子句。在第9章中将会看到这样的示例。

l    LIMIT子句不会改进查询的执行速度,因为MySQL仍然必须把每一条记录集合到一起,然后截短列表。但在mysql客户或PHP脚本中,LIMIT子句将把要处理的数据量减至最少。

l    LIMIT名词不是SQL标准的一部分,因此(令人悲哀的是)并非在所有的数据库上都可以使用它。

l    LIMIT不仅仅可以与SELECT一起使用,还可以与大多数类型的查询一起使用。

------分隔线----------------------------