【问题标题】:Deleting the second last row from Mysql(Mariadb) database从 Mysql(Mariadb) 数据库中删除倒数第二行
【发布时间】:2021-08-24 17:10:01
【问题描述】:

所以我可以使用从我的数据库中获取倒数第二行

select* from hot_coffee_order order by OID desc limit 1,1

但是,当我尝试使用以下方法删除此行时:

delete from hot_coffee_order order by OID desc limit 1,1

由于某种原因,我遇到了错误。有没有办法从我的数据库中删除倒数第二行?

【问题讨论】:

  • 为什么说“出于某种原因”?从文档中的语法来看不是很明显吗? DELETE 中的 LIMIT 子句仅允许您指定行数,而不是偏移量。和SELECT不一样。
  • 这个的用例是什么?

标签: mysql sql mariadb limit sql-delete


【解决方案1】:

会更复杂,但假设OID 是唯一的,您可以使用join

delete hco
    from hot_coffee_order hco join
         (select hco2.*
          from hot_coffee_order hco2
          order by oid desc
          limit 1, 1
         ) hco2
         using (oid);

【讨论】:

  • 非常感谢!与最后一个相比,删除倒数第二个要复杂得多,有什么原因吗?
  • @ChrisCross 。 . .好吧,delete 不支持offset
猜你喜欢
  • 1970-01-01
  • 2022-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多