mysql 全球唯一标识符_MYSQL应用 - 自定义排序,字段置顶等

在MYSQL数据库查询时,排序是经常用到的一个功能。单纯按照某字段排序查询较为简单,无非就是order by `field` (DESC/ASC)。如:

1 SELECT * FROM `table`

2 ORDER BY `field` DESC

注:上面的table换成要查询的表名,field换成要排序的字段名,DESC表示从大到小,去掉则从小到大。

下面介绍几个复杂一点的应用:

自定义排序

需求:查询table表,取出id为1,5,9,7的记录,并按1597的顺序显示.

解决:

1 SELECT * FROM `table`

2 WHERE id in(1,5,7,9)

3 ORDER BY FIELD(`id`,1,5,9,7) //注意FIELD后面无空格

文章置顶

需求一:查询文章表table,取出所有文章,但字段zj为1的记录置顶(均以time字段排序,time大的 放在前面)。

解决一:

1 SELECT * FROM `table`

2 ORDER BY `zj` DESC,`time` DESC

解决二:

1 SELECT * FROM `table`

2 WHERE zj=1

3 ORDER BY `time` DESC

4 UNION

5 SELECT * FROM `table`

6 WHERE zj!=1

7 ORDER BY `time` DESC

需求二:查询文章表table,取出所有文章,置顶ID为1、5、12、2的文章,并按上述顺序显示。

解决:

1 SELECT * FROM `table`

2 ORDER BY FIELD(`zj`,1,5,12,2) DESC,`time` DESC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值