论坛中不同类型的贴的排序问题(涉及数据库的:CASE... END)
2024-10-20 21:12:30
在论坛中,会有不同类型的帖子,比如说:普通贴、精华帖、置顶帖;
论坛的这些贴子会根据不同的类型进行排序,当然不仅仅只是看帖子类型,还有贴子的动态情况来进行排序。
在这里演示一下简单的帖子排序,我们只关注帖子的最新动态时间和帖子类型进行排序。
其中最新动态的时间是这样确定的:如果刚创建的新帖,那么该帖子的最新动态时间就为该帖子的创建时间;如果有最新的回复,那么最新的动态时间就为最新回复的时间;
排序条件:
1. 最新动态时间越新越靠前
2. 普通贴跟精华贴之间在排序上没有区别,置顶帖肯定是最顶层的。
也就是说,排序的时候先排置顶帖,并且根据最新动态的时间排序置顶帖之间的顺序,然后再根据最新动态时间去排普通贴和精华帖的顺序。
那么我们在数据库中查询帖子集合的时候,根据SQL语句就查询出排好序的数据,该怎么做呢?
我们此时就要用到SQL的CASE WHEN ? THEN ? (,WHEN ? THEN ) ELSE ? END。
如: SELECT * FROM Topic t WHERE t.forum = ? ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC , t.lastUpdateTime DESC ;
最新文章
- Swift 简介
- DAO模式设计步骤
- 文件类型工具类:FileTypeUtil
- Java实现注册邮箱激活验证
- 将Uploads文件夹移到其它地方
- Sql server 数据库中,纯SQL语句查询、执行 单引号问题。
- iOS中运用正则表达式
- AJAX的简单梳理
- log4j源码解析-文件解析
- Delphi编程中动态菜单要点归纳
- 练习|Django-多表
- 《FPGA全程进阶---实战演练》第七章 让按键恢复平静
- VueI18n的应用
- 破解webstorm
- LeetCode 13 Roman to Integer(罗马数字转为整数)
- 编译原理(六)自底向上分析之LR分析法
- 20155217 《Java程序设计》第三次实验报告
- 原!linux 监控 jar定时任务 挂了重启 脚本
- SQL点点滴滴_聚集索引设计指南-转载
- Android 查看 无wifi/usb设备的logcat方法