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

enumerate rows of a table into a new column in MySQL

我有一个table。我想 select 添加一个可以作为各种索引的列。

我有这个 table, 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 的初学者。

我认为这些答案应该对您有所帮助:

从此处复制您的 table(临时创建除外): Duplicating a MySQL table, indexes and data

然后按照此处所述编写程序: How can I loop through all rows of a table? (MySQL)

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

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