1.功能须要

完毕列表排序上移,下移,置顶功能。效果例如以下图所看到的:


2设置思路

设置一个rank为之间戳,通过选择上移,就是将本记录与上一条记录rank值交换,下移就是将本条记录与下一条记录rank值交换。置顶就是将本记录与rank值最小的记录交换

3.表数据结构

选择mysql记录上一条,下一条sql语句
SELECT * FROM user ORDER BY rank ASC
+----+------+---------+
| ID | rank | name |
+----+------+---------+
| 1 | 1 | admin1 |
| 2 | 2 | admin2 |
| 3 | 3 | admin3 |
| 4 | 4 | admin4 |
| 5 | 5 | admin5 |
| 6 | 6 | admin6 |
| 7 | 7 | admin7 |
| 8 | 8 | admin8 |
| 9 | 9 | admin9 |
| 10 | 10 | admin10 |
| 11 | 11 | admin11 |
| 12 | 12 | admin12 |
+----+------+---------+

4.选择上一行

select * from user where id <3 or id=(SELECT MIN(id) from user) order by id desc limit 1
+----+------+--------+
| ID | rank | name |
+----+------+--------+
| 2 | 2 | admin2 |
+----+------+--------+
1 row in set (0.00 sec)

5.当id=1时

mysql> select * from user where id <1 or id=(SELECT MIN(id) from user) order by id desc limit 1;
+----+------+--------+
| ID | rank | name |
+----+------+--------+
| 1 | 1 | admin1 |
+----+------+--------+
1 row in set (0.00 sec)

6.选择下一行

mysql> select * from user where id > 3 OR ID=(SELECT MAX(ID) FROM user) ORDER BY id ASC LIMIT 1;
+----+------+--------+
| ID | rank | name |
+----+------+--------+
| 4 | 4 | admin4 |
+----+------+--------+
1 row in set (0.00 sec)

7.当id为最大值时

mysql> select * from user where id > 12 OR ID=(SELECT MAX(ID) FROM user) ORDER BY id ASC LIMIT 1;
+----+------+---------+
| ID | rank | name |
+----+------+---------+
| 12 | 12 | admin12 |
+----+------+---------+
1 row in set (0.00 sec)

mysql选择上一条、下一条数据记录,排序上移、下移、置顶的更多相关文章

  1. MySQL 上移/下移/置顶

    在编写网站系统时,难免会用到上移.下移.置顶的功能,今天小编就介绍一下我的思路. 首先,需要一张数据表: CREATE TABLE `a` ( `id` ) NOT NULL AUTO_INCREME ...

  2. Linq-查询上一条下一条

    //下一条 int pollid = poll.Where(f => f.PollID < CurrentId).OrderByDescending(o => o.PollID).F ...

  3. MYSQL实现上一条下一条功能

    select id from(select *, (@i:=@i+1) as rownum from pre_bet_zhibo,(select @i:=0) as itwhere link_cone ...

  4. php 新闻上一条下一条

    public function prevnext($table,$id,$where=[]){ $ids=db($table)->field('id,title')->order('sor ...

  5. 使用B或BL跳转时,下一条指令的地址的计算

    .text .global _start 3_start: b step1 step1: ldr pc, =step2 step2: b step2 反汇编代码: : eaffffff b 0x4 : ...

  6. MySQL多表数据记录查询详解

    在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...

  7. erlang下lists模块sort(排序)方法源码解析(二)

    上接erlang下lists模块sort(排序)方法源码解析(一),到目前为止,list列表已经被分割成N个列表,而且每个列表的元素是有序的(从大到小) 下面我们重点来看看mergel和rmergel ...

  8. MySQL实现根据当前ID读取上一条和下一条记录

    以下为MySQL语句演示: SELECT * FROM t_news AS n ORDER BY n.`News_ID` 当前ID为4,读取上一条记录: ,; 当前ID为4,读取下一条记录: ,; 其 ...

  9. Mysql 查询当前数据上一条和下一条的记录

    获取当前文件上一条与下一条记录的原理是上一条的sql语句,从news表里按从大到小的顺序选择一条比当前ID小的新闻,下一条的sql语句,从news表里按从小到大的顺序选择一条比当前ID大的新闻. 如果 ...

随机推荐

  1. POJ 2186 Tarjan

    题意:有n(n<=10000)头牛,每头牛都想成为最受欢迎的牛,给出m(m<=50000)个关系,如(1,2)代表1欢迎2,关系可以传递,但是不是相互的,那么就是说1欢迎2不代表2欢迎1, ...

  2. 自己整理的HTML基本标签参考知识

          基 本 标 签 创建一个HTML文档 <html></html> 设置文档标题以及其他不在WEB网页上显示的信息 <head></head> ...

  3. 日期Date和String/Long之间的转换

    下面是关于日期的常见的几种类型转换: import java.text.ParseException; import java.text.SimpleDateFormat; import java.u ...

  4. Django学习案例一(blog):三. 模型生成数据

    1. 什么是模型models Django中以创建类的形式来创建数据表. 在编写代码的过程中,所有对数据库的操作,都是对类和类的对象进行操作. ORM对象关系映射(Object relation ma ...

  5. android开源新闻小程序、3D翻转公告效果、小说检索、Kotlin开发TODO清单等源码

    Android精选源码 开源新闻小程序源码分享 android动态壁纸.锁屏动画.来电秀等源码 android笔记App效果源码 Android实现3D版翻页公告效果 android小说搜索阅读源码 ...

  6. ★Java语法(二)——————————数据类型及装换

    整数类型: 1.byte型:8位(1字节)  范围:-128~127 用法:byte x = 35 : 2.short型:16位(2字节)  范围:-32768~32767 用法:short x = ...

  7. javascript 基础知识点

    NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时 ...

  8. react基础篇六

    创建 Refs 使用 React.createRef() 创建 refs,通过 ref 属性来获得 React 元素.当构造组件时,refs 通常被赋值给实例的一个属性,这样你可以在组件中任意一处使用 ...

  9. window 8 电脑操作服务集合(网址)

    如何开启Win8远程桌面 http://jingyan.baidu.com/album/48206aeae06627216ad6b3bf.html?picindex=2 Win8.1用户账户的配置管理 ...

  10. Model2

    Model1: Model2: