码迷,mamicode.com
首页 > 数据库 > 详细

Mysql数据库实现的简单置顶

时间:2016-11-04 23:23:36      阅读:768      评论:0      收藏:0      [点我收藏+]

标签:str   art   text   sel   .com   最大   mysql数据库   取出   jquer   

Mysql数据库实现的简单置顶

1. 问题背景:小编要做一个文章管理的简单网页,用的是Mysql数据库。其中需要文章置顶功能,如图:

技术分享

2. 最初的思路:机智的小编立刻大脑飞速运转,很快想到为存储文章的"article"表设定一个(int)型的"isTop"属性,0表示不置顶,大于0表示置顶且数字越大,优先级越高。显示的时候只需按照"isTop"降序显示。当用户需要将"id"为"001"的文章置顶时,后台只需获得所有文章"isTop"字段的最大值,并将其(+1)后赋值给"id"为"001"的文章的"isTop",就能保证置顶操作后的文章优先级最高。

3. 有瑕疵的实现:有了思路之后,小编立刻编写代码。主要还是sql语句,如下:

 

update article set isTop=((select Max(isTop) from article)+1) where id=?;

 

用了一个子查询,个人觉得没毛病,可是报错了

 

技术分享

查了一下原来是Mysql的不支持先select再update同一个表。

4. 最终实现:小编在网上多方参考和尝试之后,发现解决办法。可以将article的数据取出来当作一个临时表,再在临时表中查询Max(isTop),就没有问题了。sql语句如下:

 

update article set isTop=((select Max(isTop) from (select * from article)as x)+1) where id=?;

 

5. 参考链接:http://www.jquerycn.cn/a_14968

Mysql数据库实现的简单置顶

标签:str   art   text   sel   .com   最大   mysql数据库   取出   jquer   

原文地址:http://www.cnblogs.com/RottenOrange/p/6031789.html

(2)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!