【问题标题】:Delete block of rows postgres删除行块postgres
【发布时间】:2018-11-06 17:28:18
【问题描述】:

我需要删除 Postgres 表中的一行行。我有一个查询,其中包含我必须删除的 uid 范围。

例如,作为查询的输出,我有列 uid:

--输出--

uid 
1
10
55
150

我需要删除块从 uid 1 到 uid 9,然后从 uid 10 到 uid 54,然后从 uid 55 到 uid 149 等等......

我怎样才能达到这个结果?

【问题讨论】:

  • 为什么不直接从 1 删除到 150?
  • 你的意思是你想删除 1-150 基本上就像 Gordon 评论的那样,或者沿着 (1,9], (10, 54], (55, 149] 的行删除所有除了列出了你的边界?
  • postgres 版本号?
  • postgres 9.3。我的意思是删除从 1 到 10 的块。块可能是这样的:1 到 172,块 2:1050 到 1500 等等..
  • 我用游标解决了,发现了起始块和结束块

标签: sql postgresql sql-delete


【解决方案1】:
delete from tablename
where uid in (
    select uid from yourquery
)

【讨论】:

  • 这不会删除带有uid = 2的行
猜你喜欢
  • 2021-01-21
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
  • 2017-07-30
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多