MySQL学习(七)

本文详细介绍了SQL中排序的基本语法及应用,包括如何对单一和多个字段进行升序和降序排序,如何结合limit限制查询结果数量,以及如何通过子查询解决特定查询需求。文章还提供了实际案例,如按栏目和价格排序商品信息,帮助读者更好地理解和掌握SQL排序和查询技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 最终结果集出来后,可以再排序,反过来说:排序是针对最终结果集,即order by要放在where/group/having后面,顺序不能乱。
2
取出第4个栏目下的商品,并按照价格由高到低排序

mysql> select goods_name,shop_price from goods
    -> where cat_id = 4
    -> order by shop_price;

降序排列

mysql> select goods_name,shop_price from goods
    -> where cat_id = 4
    -> order by shop_price desc;

asc表示升序排列

3

mysql> select goods_name,cat_id,shop_price from goods
    -> order by cat_id;

虽然cat_id按照顺序排列,但是价格不是按照顺序排列。
要求:按照栏目升序排列,栏目内部价格按照降序排列。
多列排序

mysql> select goods_name,cat_id,shop_price from goods
    -> order by cat_id ,shop_price desc;

4
使用limit限制查询结果得数量

mysql> select goos_id,cat_id ,goods_name
    -> from goods
    -> where cat_id =3
    -> order by shop_price asc
    -> limit 10;

limit [位置偏移量,] 行数

mysql> select goos_id,cat_id ,goods_name
    -> from goods
    -> order by shop_price
    -> desc
    -> limit 0,1;

5 练习题
查询出,每个栏目(cat_id)下id号(goos_id)最大的第一条商品
典型错误

mysql> select cat_id,max(goos_id) from goods
    -> group by cat_id;

上面的问题不能用一条SQL语句完成,需要用到子查询

转载于:https://www.cnblogs.com/Manual-Linux/p/10198169.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值