我需要排除文件中的重复记录 bidding_price
具有以下条件的列:
表格: bid_account
要检查的列: id
=主键 auction_id
=每个产品的id bidding_price
=插入值(必须检查每个产品的重复性) bid_flag
=必须始终等于“d”的值 bidding_type
=必须始终等于::“s”的值
它将永远平等地存在于世界上 bidding_price
列中不能有具有相同产品id的相等记录( auction_id
).
不应具有的示例:
拍卖|投标|价格
------10
9条答案
按热度按时间j13ufse21#
--0.02
正确答案是:
拍卖|投标|价格
------10
kgsdhlau2#
--0.02
我尝试了以下命令:
问题是它删除了多个不应该删除的记录,没有正确地进行验证。我该怎么做?
j2cgzkjk3#
您可以使用主键id删除它。它用于唯一标识要执行删除操作的记录。请参见此处的演示:http://sqlfiddle.com/#!9/603d56/1号
它利用在子查询中选择id(选择它两次将避免错误:不能为更新指定目标表)。子查询类似于您的查询,它选择将保留的id。使用not in意味着删除子查询中与这些id不相等的其余行。
btxsgosb4#
id是表中的主键,因此可以
MAX(id)
作为您的预订id,然后使用NOT IN
按id删除而不删除MAX(id)
你可以试试这个。sqlfiddle:http://sqlfiddle.com/#!9月2日5月1日
编辑
如果你想得到最低的id值,你可以使用
MIN(id)
在where子句的子查询中sqlfiddle:http://sqlfiddle.com/#!1992年9月1日
x7rlezfr5#
--0.02
------10
hkmswyz66#
--0.02
------11
aydmsdu97#
下面的陈述应该给你所有你需要的记录。
not in子句应该提供您不需要的所有记录。因此,从bid_帐户中删除id不在(#子查询以获取所需的id#),ba.bid_flag='d'和ba.bidding_type='s';应该删除重复记录。
li9yvcax8#
--0.02
------11
bvk5enib9#
--0.02
------11