在做博客文章详情的时候,有一个拓展阅读的功能:

想法一:根据当前文章Id,写死两条链接,Id+1,Id-1,但是文章Id可能被删除,Id不连续,不可取。×

想法二:获得当前文章记录的前一条和后一条记录,好像有点难受,要查询两次。查询两次,可行。√

想法三:直接获取文章表两条随机的记录。一次查询,舒服。√

SELECT *
FROM t_article
WHERE Id >= ((SELECT MAX(Id) FROM t_article)-(SELECT MIN(Id) FROM t_article)) * RAND() + (SELECT MIN(Id) FROM t_article)
LIMIT

ArticleService对应的方法

        /// <summary>
/// 延伸阅读-获取两条随机文章
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
public IEnumerable<ArticleModel> GetRandomArticleList(int num)
{
string _where = "WHERE Id >= ((SELECT MAX(Id) FROM t_article)-(SELECT MIN(Id) FROM t_article)) * RAND() + (SELECT MIN(Id) FROM t_article) LIMIT "+num;
return repository.GetByWhere(_where,null,null,null); ;
}

最新文章

  1. 【Linux学习】Linux下用户组、文件权限详解
  2. Android中NDK的搭建及简单使用 Android.mk相关介绍 JNI的使用
  3. 明白何谓Margin Collapse
  4. [家里蹲大学数学杂志]第235期$L^p$ 调和函数恒为零
  5. win7出现无法连接到代理服务器的错误,不能上网的问题的解决
  6. iOS-多线程--(pthread/NSThread/GCD/NSOperation)--总结
  7. QQ、淘宝、阿里旺旺在线网页链接代码及详解 很实用
  8. nginx + lua 构建网站防护waf(一)
  9. URL重写 UrlRewrite
  10. win7 64位系统调试zkemkeeper.dll出错误解决
  11. ZooKeeper概述
  12. IOC:AutoFac使用demo
  13. Android 工程越来越大,运行变卡解决方法
  14. pb中遍历查询数据库数据问题(数据库为 sql server)
  15. 【转帖】Systemd 入门教程:命令篇
  16. FreeRTOS
  17. MySQL分布式实现ID自增
  18. 重识 PWA 进阶到 workbox3
  19. 数据库日志文件——数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
  20. AngularJs 学习 (一)

热门文章

  1. Qt 和 Boost关于信号和槽的对比说明
  2. clog就用clog的后缀名
  3. mac 10.14.5 [vue create的时候 mkdir没有权限]
  4. centos 防火墙相关命令
  5. Sql server 中count() 与 sum() 的区别
  6. ARTS 第十周打卡
  7. go 常量2
  8. dubbo中使用的zookeeper,netty以及javassist的Demo文件
  9. vi 使用系统剪贴板(clipboard)
  10. 判断pdf文件是否正常可用