2012-11-03 23 views
1

因此,正如我所说,是可以复制每一行,并把它放在下面的行或作为相同的移动字段行到下面的字段? (当然有索引自动增量)。结果应该是第41行中的旧行40内容(字段)等等。在表格中间拖动一些行

REPLACE table SET column1 = previuos(column1), column2= previous(column2), column3=(previous(column3) where id > 20 and id < 300 

他们不是插入的最后,他们在桌子中间,并希望将其向下移动,从而使让我有些空行(与指数)在选定的开始

INSERT INTO table (
    SELECT column1,column2,column3 
    FROM table WHERE id > 20 AND id < 200 
) WHERE id = 30 
从21到199,然后插在30和提前

选择行谢谢

+0

你尝试过什么?我们能否看到一些样本数据/模式和期望的结果? –

+0

有帮助吗? @AdamWenger? – Mik

+1

为什么你想要替换这些ID中的值。 ID应该不重要,因为它只是该行的参考点。如果您将ID用于特定业务,请考虑制作另一列,然后您可以简单地根据业务需求更新列。 –

回答

1

你的问题是一种很难理解,但如果要复制的最后插入你可以这样做:

INSERT INTO your_table (
    SELECT NULL, column_1, column_2, column_etc 
    FROM your_table ORDER BY your_id DESC LIMIT 1 
); 
+0

我想要的是将一堆行向下移动(asc顺序),并为新值创建空行。 – Mik

0

请记住,数据库表不是电子表格。

但是这会做你仿佛想:

UPDATE mytable 
SET id = id + 9 
WHERE id BETWEEN 21 AND 199; 
+0

谢谢你的尝试,但不想移动ID上的任何内容,而是移动其余的列。当你将一堆物品拖放到列表项上时,你现在是不是?那我想做什么,但没有移动ID,是和索引,自动增量顺便说一句 – Mik