我有一个 MySQL 表,如下所示:
-----
| 1 |
-----
| 3 |
-----
| 7 |
-----
| . |
-----
| . |
-----
| . |
-----
| n |
-----
是否可以从这个表中选择这样的东西:
----------
| 1 || 3 |
----------
| 3 || 7 |
----------
| 7 || . |
----------
| . || . |
----------
| . || . |
----------
| n || n-1 |
最佳答案
我猜,下面的查询最接近你想要的 MySQL
mysql> select * from num;
+------+
| a |
+------+
| 1 |
| 3 |
| 7 |
| 11 |
| 17 |
+------+
mysql> select @prev:=a FROM num ORDER BY a ASC LIMIT 1,1;
+----------+
| @prev:=a |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)
mysql> select @prev, t1.a, @prev:=t1.a from num t1;
+-------+------+-------------+
| @prev | a | @prev:=t1.a |
+-------+------+-------------+
| 3 | 1 | 1 | <= 1st row is dummy
| 1 | 3 | 3 |
| 3 | 7 | 7 |
| 7 | 11 | 11 |
| 11 | 17 | 17 |
+-------+------+-------------+
5 rows in set (0.00 sec)
mysql> select MAX(a), NULL FROM num;
+--------+------+
| MAX(a) | NULL |
+--------+------+
| 17 | NULL | <= last row founded here
+--------+------+
1 row in set (0.00 sec)
关于Mysql select from table 移动一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245190/