将表的行枚举到MySQL中的新列中

时间:2016-03-26 03:14:03

标签: mysql sequence

我有一张桌子。我想在其上选择一个可以作为各种索引的列。

我有这张表table1

col 1     col2  col3
a         b     c
d         e     f
g         h     i  

我想这样做:

CREATE TEMPORARY TABLE temp1 AS
SELECT (some way to create a sequence from 1 to the height of the table) AS `seq`
,col1
,col2
,col3
FROM table1;

并获取

seq    col 1     col2  col3
1      a         b     c
2      d         e     f
3      g         h     i  

我一直在谷歌上搜索,似乎没有任何有用的东西。对不起,我也是MySQL的初学者。

2 个答案:

答案 0 :(得分:1)

如果要使用临时表,可以复制table1的表定义,但添加自动增量列。

DROP TEMPORARY TABLE IF EXISTS temp1;
CREATE TEMPORARY TABLE temp1 (
  seq  INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  col1 VARCHAR(255),
  col2 VARCHAR(255),
  col3 VARCHAR(255)
) AS
  SELECT NULL seq
    ,col1
    ,col2
    ,col3
  FROM table1
;

SELECT * FROM temp1;

fiddle

答案 1 :(得分:0)

我认为这些答案可以帮助你:

复制你的表(创建为临时除外),如下所示: Duplicating a MySQL table, indexes and data

然后编写如下所述的过程: How can I loop through all rows of a table? (MySQL)