限量
对于一次性查询出的大量记录,不仅不便于阅读查看,还会浪费系统效率。
MySQL 中提供了一个关键字 LIMIT,可以限定记录的数量,也可以指定查询从哪一条记录开始(通常用于分页)。
SELECT [select 选项] 字段列表 FROM 数据表名
[WHERE 条件表达式] [ORDER BY 字段 ASC|DESC]
LIMIT [OFFSET,] 记录数;
记录数:表示限定获取的最大记录数量。仅含此参数时,表示从第 1 条记录开始获取。
OFFSET:表示偏移量,用于设置从哪条记录开始,默认第 1 条记录的偏移量值为 0,第 2 条记录的偏移量值为 1,依次类推。
限制记录数:查询 sh_goods 表中价格最贵的商品
mysql> SELECT id, name, price FROM sh_goods
-> ORDER BY price DESC LIMIT 1;
+----+------------+---------+
| id | name | price |
+----+------------+---------+
| 4 | | 5999.00 |
+----+------------+---------+
1 row in set (0.00 sec)
获取指定区间的记录数:从第 1 条记录开始的 5 条商品记录
mysql> SELECT id, name, price FROM sh_goods LIMIT 0, 5;
+----+------------+---------+
| id | name | price |
+----+------------+---------+
| 1 | | 0.50 |
| 2 | | 15.00 |
| 3 | | 1.00 |
| 4 | | 5999.00 |
| 5 | | 1999.00 |
+----+------------+---------+
5 rows in set (0.00 sec)
在 MySQL 中除了对查询记录进行排序和限量外,对数据表中记录的更新与删除操作也可以进行排序和限量。
数据更新的排序与限量
UPDATE 数据表名 SET 字段=新值, … [WHERE 条件表达式]
ORDER BY 字段 ASC|DESC LIMIT 记录数;
数据删除的排序与限量
DELETE FROM 数据表名 [WHERE 条件表达式]
ORDER BY 字段 ASC|DESC LIMIT 记录数;
排序后限量更新或删除数据
UPDATE 和 DELETE 操作中添加 ORDER BY 表示根据指定的字段,按顺序更新或删除符合条件的记录。
如果 UPDATE 和 DELETE 操作没有添加 WHERE 条件,则可以使用 LIMIT 来限制更新和删除的数量。
版权声明: 本文为 InfoQ 作者【在即】的原创文章。
原文链接:【http://xie.infoq.cn/article/bdc1692b4d9126fd7fe4d5d63】。文章转载请联系作者。
评论