SQL语句只删除一行重复项

2024-01-27

所以我正在使用 Ruby 工作,并假设我的两列表中有 6 行完全相同。就我而言,我的表“campaign_items”有两列“campaign_name”和“item”。我想使用单个查询仅删除 6 个重复项中的一行。我是这样开始的:

db.exec("DELETE FROM products WHERE campaign_name = '#{camp_name}' AND product_type = 'fleecejacket' AND size = '#{size_array[index]}'")

这当然删除了该条件的所有项目。所以我在另一个问题中找到了这样的答案:

db.exec("DELETE FROM products a WHERE a.ctid <> (SELECT min(b.ctid) FROM products b WHERE a.key = b.key)")

但是,这将删除除一个重复项之外的所有重复项。我还没有找到一种方法,只删除具有重复项的单行。是否有我正在寻找的删除热门查询?提前致谢。

编辑:我还有一个“id”列,它是主键。


所以我肯定想太多了,但所需要的只是这样:

x = db.exec("SELECT * FROM campaign_items WHERE campaign_name = '#{camp_name}' AND item = 'fleecejacket'")

id = x[0]['id']

db.exec("DELETE FROM campaign_items WHERE campaign_name = '#{camp_name}' AND item = 'fleecejacket' AND id = '#{id}'")

从第一个重复项中获取唯一的 id(因为删除哪一个并不重要)并删除具有该 id 的行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL语句只删除一行重复项 的相关文章

随机推荐

  • Vim 带有圆括号和中括号的缩进级别

    当我使用重新缩进文件时gg G我注意到右括号或括号的缩进与左括号的行不匹配 例如 前导选项卡显示为 gt if settings DEBUG gt urlpatterns patterns gt gt url r media P
  • 在 ffmpeg 的 showwaves 中使用十六进制颜色

    我一直在尝试使用 ffmpeg 的 showwaves 过滤器创建视频 并拼凑了以下我能理解的命令 我想知道是否可以使用十六进制颜色设置 wav 形式的颜色 即 F3ECDA 而不是 蓝色 另外 请随时告诉我命令中是否有任何不需要的垃圾 谢
  • 如何使JTable的背景透明? [复制]

    这个问题在这里已经有答案了 可能的重复 Java swing 表透明度 https stackoverflow com questions 9769909 java swing table transparency 让 JTable 背景透
  • 类、对象、实体:有什么区别?

    我还看到其他术语 实体对象 值对象等 还有其他我应该知道的术语吗 这些术语指的是什么 如果有的话 可以通过阅读代码来识别它们之间的差异吗 类是创建对象的模板 并非所有 OO 语言都使用类 请参阅 Self Javascript 通常 类被实
  • 错误:为 i386 构建时,重载运算符“[]”的使用不明确

    考虑以下代码 include
  • 如何在 Eclipse 中运行 Play 项目

    你好 我一直在尝试寻找如何在 Eclipse 中运行 Java Play 项目 但我找不到简单的方法 这是我所做的 创建一个项目 play new testApp 转到文件夹 cd testApp 使项目黯然失色 play eclipsif
  • 如何使用 xmlhttprequest 从 javascript 将字符串发送到 servlet [重复]

    这个问题在这里已经有答案了 客户端代码 function myReq try var myJSONObject main url http facebook1474159850 altervista org var toServer myJ
  • Mvc3 - 处理(几乎)所有请求所需的数据的最佳实践?

    我正在 mvc3 中创建一个应用程序 想知道如何处理所有应用程序请求所需的数据库数据 其中一些取决于会话 其中一些取决于 url 模式 基本上所有数据都在数据库中 喜欢了解最佳实践 我在应用程序中所做的并认为最佳实践是将通用数据加载到控制器
  • 如何获取 Mercurial 存储库中每个文件的最新版本号列表?

    我为我的 Web 应用程序创建了一个构建系统 该系统重写所有资源 url 以包含文件的修订号 以改进客户端缓存 截至今天 我正在为每个文件运行此命令以获取修订号 hg log template rev n path to file 对每个文
  • 基于 NSFetchedResultsController 的表视图在第二次插入实体时总是失败

    我正在使用 NSFetchedResultsController 来管理在具有一个部分的表视图中显示获取的托管对象 该表一开始是空的 用户可以使用 UI 向其中添加新实体 就目前情况而言 程序在添加第一个实体时始终有效 而在添加第二个实体时
  • C# 中的心电图数字信号处理

    我正在寻找用于数字滤波 低通 高通 陷波 的 C NET 库 以实时过滤心电图波形 有什么建议么 如果这是非商业用途 我听说过关于信号实验室库 http www mitov com html signallab html 非商业用途免费 商
  • MDX - TopCount 加“其他”或“其余”

    我创建了一个 MDX 查询 用于计算前 10 个邮政编码 根据我的患者住院测量 如下所示 WITH MEMBER Discharge Date Y M D Aggregation AS AGGREGATE EXISTING Current
  • 如何在 Github Actions 中查看已取消步骤的日志?

    我的工作流程中有一个步骤是运行命令 python 脚本 这个 python 脚本似乎挂在执行过程中的某个地方 GitHub 显示该步骤在运行时被卡住并且没有任何反应 为了调试这个 我想查看 python 脚本的日志输出 我怎样才能做到这一点
  • PHP 中的测试驱动开发

    我是一名使用 PHP 工作的 Web 开发人员 我在 C 桌面应用程序中使用测试驱动开发的经验有限 在这种情况下 我们使用 nUnit 作为单元测试框架 我想在新项目中开始使用 TDD 但我真的不知道从哪里开始 对于基于 PHP 的单元测试
  • 通知在 flutter 上显示两次

    我被困住了 我的后台通知显示两次 但前台只有一个通知 这是我的代码 Future
  • 谷歌数据存储中的节点分页

    我在使用 Google Datastore 进行分页时遇到问题 我有一个查询 没有限制 有几百个结果 我想检索 5 个 将它们发送回用户 如果用户想要更多 他们会检索下 5 个 根据文档 我创建了查询 var query datastore
  • div 相对于窗口的位置?

    尝试找到 div 相对于窗口的位置 我有一个水平 div 我想获取相对于窗口的左侧值 因此 如果我将第二个 div 滚动到窗口左侧 它将显示 0 不确定如果没有父 div 这是否可行 这是我的小提琴 http jsfiddle net FS
  • 如何在 Symfony2 配置中添加带有值的数组?

    我想在配置文件 config yml 中添加一个简单的值列表 例如 my bundle columns col1 col2 将节点添加到配置解析器时 它只是失败 rootNode treeBuilder gt root my bundle
  • NHibernate 测试,模拟 ISession

    我正在使用 NHibernate 和 Rhinomocks 但在测试我想要的东西时遇到了困难 我想在不访问数据库的情况下测试以下存储库方法 其中 session 作为 ISession 注入存储库 public class Reposito
  • SQL语句只删除一行重复项

    所以我正在使用 Ruby 工作 并假设我的两列表中有 6 行完全相同 就我而言 我的表 campaign items 有两列 campaign name 和 item 我想使用单个查询仅删除 6 个重复项中的一行 我是这样开始的 db ex