在MySQL中使用带有变量的SELECT语句创建表

时间:2019-09-07 14:51:31

标签: mysql sql mysql-5.7

如何基于带有变量的SELECT语句创建表?我的意思是(简化示例):

    SET @tmp = 0; 

    CREATE TABLE test AS

    SELECT
        (@tmp:=@tmp + 1) test,
        ...
    FROM x

我使用MySQL 5.7。

1 个答案:

答案 0 :(得分:2)

您的代码应该可以使用。您只需要给列命名:

SET @tmp = 0; 

CREATE TABLE test AS
    SELECT (@tmp := @tmp + 1) as test_id
        ...
    FROM x;

您可以将其合并为一个语句:

CREATE TABLE test AS
    SELECT (@tmp := @tmp + 1) as test_id
        ...
    FROM x CROSS JOIN
         (SELECT @tmp := 0) params;

Here是db <>小提琴