MySQL在ID = X的行前面选择一行

时间:2010-11-19 13:39:43

标签: sql mysql database sorting

这实际上是一个几乎解决的排序问题,这要归功于我在StackOverflow上找到的其他帖子。

基本上我试图将一行排成一行,不需要在表格中间的某处插入它并将所有以下行ID更改为一个地方(将订单ID替换为之前)。 我已经在另一篇文章中找到了解决方案,例如,id已知。

ID |名字|姓

1 |约翰|母鹿
2 |简|丹麦人

但是我的桌子有差距,而且往往更像是

ID |名字|姓

2 |约翰|母鹿
7 |简|丹麦人

所以我真的不能依靠减去1的id并用行号7-1替换第7行。

在不知道其他ID的情况下,是否有可能以某种方式将行ID X转换为其他ID?

是否可以只使用SQL?我有一个关于它的想法,但它似乎很像修复而不是解决方案。

1 个答案:

答案 0 :(得分:0)

这可以在SQL Server中使用,我也在MySQL中假设:

SELECT *
FROM MyTable MT
...
WHERE ID = (SELECT MAX(ID) FROM MyTable MT2 WHERE ID < MT.ID)