首页 > 代码库 > Mysql数据库实现的简单置顶
Mysql数据库实现的简单置顶
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数据库实现的简单置顶
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。