【问题标题】:How to use autoincrement for a SELECT INTO of a GROUP BY result in MySQL?如何在 MySQL 中对 GROUP BY 结果的 SELECT INTO 使用自动增量?
【发布时间】:2021-12-30 22:30:04
【问题描述】:

我找到了这个

SET @row_number = 0; 
SELECT 
    (@row_number:=@row_number + 1) AS num, 
    firstName, 
    lastName
FROM
    employees
ORDER BY firstName, lastName

解决方案here 用于将行号添加到 MySQL 结果,但它不适用于GROUP BY-result,因为行号不是连续的,而是按分组的行数“跳跃” . 或者SELECT INTO是否有具体的解决方案,如果已经有自增列?

【问题讨论】:

  • 不和你在一起,如果有一个 auto_increment 列你什么都不用做..
  • @P.Salmon 如何将其与SELECT INTO 一起使用?
  • 请为您选择的表格添加表格定义以及示例数据和预期结果。
  • 另外,我很难理解您为什么要分组以及要分组的内容。
  • @P.Salmon 这是一个普遍的问题。使用GROUP BY-clause 语句时如何进行连续计数?

标签: mysql group-by select-into


【解决方案1】:

基本一样,你需要先GROUP By然后做row_number

SET @row_number = 0; 
SELECT 
    (@row_number:=@row_number + 1) AS num, firstName, lastName
FROM
    (SELECT 
        firstName, lastName
    FROM
        employees
    GROUP BY firstName , lastName) t1
ORDER BY firstName , lastName

有了 MySQL8.x,这变得容易多了。

我不太确定你所说的 SELECT INTO 是什么意思

但我认为你的意思是一个 outfile,因为你有 4 个多个值

SET @row_number = 0; 
SELECT 
(@row_number:=@row_number + 1) AS num, firstName, lastName
    INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
 FROM
    (SELECT 
        firstName, lastName
    FROM
        employees
    GROUP BY firstName , lastName) t1
ORDER BY firstName , lastName

如果您希望将选定的数据插入到另一个表中,这会是这样的

INSERT INTO table2
SELECT 
(@row_number:=@row_number + 1) AS num, firstName, lastName
    INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
 FROM
    (SELECT 
        firstName, lastName
    FROM
        employees
    GROUP BY firstName , lastName) t1 , (SELECT @row_number = 0) t2
ORDER BY firstName , lastName

【讨论】:

  • 你忘记了INSERT-part...
  • 选入什么? SELECT INTO 仅适用于循环和当您有 silge 行时。你没有,那么你到底想把什么发送到 ttable 到 Ort 你的意思是一个 Outfile 吗?
  • 我需要从一个表中选择到另一个表中,但只是不同的数据。
  • 内部 select 选择 uniwue 名称组合每一行都是由 group by 保证的。所以我没有得到你想要的东西,为什么 SELCT INTO idf 你想把它输入另一个表,你在问题中没有提到,所以 tka e4 selct 并像其他任何人一样使用它
猜你喜欢
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多