十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
ORDER BY 默认按升序排列,因此 ASC (升序)子句是可选的。
从事中国电信成都枢纽中心,服务器租用,云主机,网页空间,国际域名空间,CDN,网络代维等服务。
另外,还可以按降序排列,为此可以使用 DESC(降序)。
ORDER BY 子句中还可以用数字来表示对应的列 3 对应于 SELECT 中指定的第 3 列,即工资。
按从左到右的顺序依次根据 ORDER BY 子句中指定的列进行排序。
指定用于排序的列时,如果使用的是 SELECT 子句中列的数字位置,那么指定的数字不能超过 SELECT 子句中指定的列数。( 不能超出索引 )
通常,可以按 SELECT 子句中未指定的列进行排序,但必须指定列名。然而,如果在查询中使用了GROUP BY 或 DISTINCT 子句,就不能按SELECT 子句中未指定的列进行排序。
要求:显示部门编号为 10 的员工的姓名、职位和薪水,并根据薪水按从低到高的顺序排列想获得上面这样的数据结果
如果想对表中多个字段进行不同的排列如工资表按照升序排列,年龄按照降序排列
可以再ORDER之后用逗号隔开不同排列的字段
MySQL中排序输出需要用order by。
如图,test表中有如下数据:
现在分别要求按ID正序和倒序输出结果。
正序:
select * from test order by id;
结果:
倒序:
select * from test order by id desc;
结果:
CREATE TABLE test (
`user` varchar(10),
`fruit` varchar(10),
`money` int
);
INSERT INTO test
SELECT 'user1', 'banana', 60 UNION ALL
SELECT 'user1', 'Apple', 1981 UNION ALL
SELECT 'user1', 'watermelon', 4080 UNION ALL
SELECT 'user1', 'Apple', 622 UNION ALL
SELECT 'user2', 'banana', 122246 UNION ALL
SELECT 'user2', 'Apple', 369 UNION ALL
SELECT 'user2', 'watermelon', 57362 UNION ALL
SELECT 'user3', 'banana', 463 UNION ALL
SELECT 'user3', 'watermelon', 11382 UNION ALL
SELECT 'user3', 'Apple', 966
;
SELECT
CASE
WHEN @user != test.`user` THEN @rownum:= 1
ELSE @rownum:= @rownum + 1
END AS No,
@user := test.`user` AS `User`,
test.`fruit`,
test.`money`
FROM
(SELECT @rownum:=0) r,
(SELECT @user:='') p,
test
ORDER BY
test.`user`,
test.`money` DESC
;
因为本机 MySQL 编码问题, 就把 中文给 修改成 英文了。
执行结果如下:
mysql SELECT
- CASE
- WHEN @user != test.`user` THEN @rownum:= 1
- ELSE @rownum:= @rownum + 1
- END AS No,
- @user := test.`user` AS `User`,
- test.`fruit`,
- test.`money`
- FROM
- (SELECT @rownum:=0) r,
- (SELECT @user:='') p,
- test
- ORDER BY
- test.`user`,
- test.`money` DESC
- ;
+------+-------+------------+--------+
| No | User | fruit | money |
+------+-------+------------+--------+
| 1 | user1 | watermelon | 4080 |
| 2 | user1 | Apple | 1981 |
| 3 | user1 | Apple | 622 |
| 4 | user1 | banana | 60 |
| 1 | user2 | banana | 122246 |
| 2 | user2 | watermelon | 57362 |
| 3 | user2 | Apple | 369 |
| 1 | user3 | watermelon | 11382 |
| 2 | user3 | Apple | 966 |
| 3 | user3 | banana | 463 |
+------+-------+------------+--------+
10 rows in set (0.00 sec)
mysql