【问题标题】:MYSQL Delete all rows with the minimum DATE valueMYSQL 删除具有最小 DATE 值的所有行
【发布时间】:2021-10-03 22:10:32
【问题描述】:

在 MYSQL 中,我有一个数据集,其中包含 许多 日期的 股票数据,我想删除所有具有最低日期值(我的日期值是一个整数,换句话说,我想从第一个日期删除交易)。我在堆栈溢出时发现了这段代码,但它只删除一行,而我想删除具有此最短日期的所有行。

这是我找到的代码。

DELETE FROM TABLE 
ORDER BY DATE
LIMIT 1

谢谢!

【问题讨论】:

  • 这是我的第一个问题,所以请随时告诉我提问的正确格式是什么 :) 谢谢!
  • 请检查下面的查询,如果有任何问题,请告诉我。
  • 请检查以下答案,其中使用除 DBO 之外的给定列名。

标签: mysql sql


【解决方案1】:

使用查询找出最短日期,然后删除该日期的所有记录。

-- MySQL
DELETE t
FROM TEST_TRADES t
INNER JOIN (SELECT MIN(COB_DATE) a
              FROM TEST_TRADES) tt
        ON t.COB_DATE = tt.a

请查看网址https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=4262ea268d2d9ba9b617142edf536cdc

【讨论】:

  • 嗨 Rahul,我在运行此代码时遇到错误 - 我认为 MySQL 不允许删除命令与 select 命令一起使用。 (错误代码:1093)
  • 请立即查看。 mysql不支持
  • 请查看我的网址,您将在其中获取包含示例数据的代码。
  • 嗨 Rahul,我确实检查了您在 url 中的代码,但它仍然为我返回错误...您还有其他想法吗?
  • 列名为 cob_date 的几个未知字符。这会产生错误。这完全是我的假设。你用的是哪个版本的mysql。请提供带有示例数据的表结构。我给定的查询工作正常。
【解决方案2】:

我找到了这个问题的解决方案: 这就是我所做的: 从表 T 中选择 @MIN_DATE := MIN(DATE); 从表中删除 T.DATE = @MIN_DATE

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多