order by
就像在购物网站买东西,可以按照价格排序一样,MySQL 也可以对结果集进行排序。这就是 order by。但是需要注意的是 order by 是对结果进行排序,所以用在 where/group by/having 后面。
-
取出第四个栏目下的商品,并按照价格从高到低排序
select goods_id,goods_name,cat_id,shop_price from goods where cat_id=4 order by shop_price desc;
只用加上 order by 列名,其中 desc 表示降序排列,默认为 asc 升序排列。
-
按照上架时间,升序排列:
select goods_id,goods_name,shop_price from goods where cat_id=4 order by add_time;
-
取出所有商品,按照栏目排序可以是:
select goods_id,goods_name,cat_id,shop_price from goods order by cat_id;
但是如果栏目相同,那就需再选择一列排序,例如同栏目下按照价格从高到低排序
select goods_id,goods_name,cat_id,shop_price from goods order by cat_id asc,shop_price desc;
格式为:order by 列名1 desc/asc , 列名2 desc/asc ......
limit
就像购物网站会对商品分页一样,MySQL 也可以限制取出的条数:
-
取出第三个栏目下最便宜 十款商品:
select goods_id,goods_name,cat_id,shop_price from goods where cat_id=3 order by shop_price asc limit 10;
limit 的使用方法比较简单,limit [offset,] N。offset 为偏移量,指跳过几行,默认为0。N为取出的条数。
-
查询出本店价格从高到低,第 3 到 5名:
select goods_id,goods_name,cat_id,shop_price from goods where cat_id=3 order by shop_price desc limit 2,3;
3 就是实际取出的数目,2 为偏移量。
MySQL 中 5 种子句的顺序为 where - group by - having - order by - limit
网友评论