在论坛中,会有不同类型的帖子,比如说:普通贴、精华帖、置顶帖;

论坛的这些贴子会根据不同的类型进行排序,当然不仅仅只是看帖子类型,还有贴子的动态情况来进行排序。

在这里演示一下简单的帖子排序,我们只关注帖子的最新动态时间和帖子类型进行排序。

其中最新动态的时间是这样确定的:如果刚创建的新帖,那么该帖子的最新动态时间就为该帖子的创建时间;如果有最新的回复,那么最新的动态时间就为最新回复的时间;

排序条件:

  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 ;

最新文章

  1. Swift 简介
  2. DAO模式设计步骤
  3. 文件类型工具类:FileTypeUtil
  4. Java实现注册邮箱激活验证
  5. 将Uploads文件夹移到其它地方
  6. Sql server 数据库中,纯SQL语句查询、执行 单引号问题。
  7. iOS中运用正则表达式
  8. AJAX的简单梳理
  9. log4j源码解析-文件解析
  10. Delphi编程中动态菜单要点归纳
  11. 练习|Django-多表
  12. 《FPGA全程进阶---实战演练》第七章 让按键恢复平静
  13. VueI18n的应用
  14. 破解webstorm
  15. LeetCode 13 Roman to Integer(罗马数字转为整数)
  16. 编译原理(六)自底向上分析之LR分析法
  17. 20155217 《Java程序设计》第三次实验报告
  18. 原!linux 监控 jar定时任务 挂了重启 脚本
  19. SQL点点滴滴_聚集索引设计指南-转载
  20. Android 查看 无wifi/usb设备的logcat方法

热门文章

  1. 关于tap设备
  2. Audio Unit 介绍
  3. java中截取字符串的方式
  4. MAC中如何配置两套android-sdk环境
  5. es6+最佳入门实践(2)
  6. 服务器 阿里云服务器Ubuntu挂载数据盘
  7. read 系统调用剖析【转】
  8. malloc()之后,内核发生了什么?【转】
  9. VSCode配置c++环境简单教程
  10. Appium+python自动化20-查看iOS上app元素属性【转载】