mysql 基于重复列删除整行

wbgh16ku  于 2023-05-16  发布在  Mysql
关注(0)|答案(1)|浏览(89)

假设我有一个Mysql表,其中包含时间戳,id和一些其他参数。如何根据 * 重复的时间戳 * 删除整行?
SELECT DISTINCT COL_NAME From tblname,将返回1列,其中过滤了我的时间戳,但我需要从表中删除它们(整行)。
谢谢!

siv3szwd

siv3szwd1#

根据我的意见,首先找到重复的时间戳数据行。找到重复行后,可以删除其中一个重复行。如果你想删除具有相同时间戳值的每组行的最小id,这是我的建议代码。这是子查询的组合代码。

CREATE TEMPORARY TABLE tmp_table AS ( // create temp table
  SELECT MIN(id) AS id_to_keep
  FROM tblname
  GROUP BY timestamp_col
  HAVING COUNT(*) > 1
);

DELETE FROM tblname
WHERE id NOT IN (SELECT id_to_keep FROM tmp_table);

相关问题