mysql数据库sql语句删除语句的使用

如图中所建的表,怎么删去p1,p2逆反(11,12的逆反是12,11)的记录,最后剩下id=1,p1=11,p2=12的元素。... 如图中所建的表,怎么删去p1,p2逆反(11,12的逆反是12,11)的记录,最后剩下id=1,p1=11,p2=12的元素。 展开
 我来答
0808xyj
2014-11-15 · TA获得超过1891个赞
知道大有可为答主
回答量:1237
采纳率:100%
帮助的人:1082万
展开全部
问题:表中的数据量大么?大概有多少数据量?
以下SQL已跑通,应满足你的需求

注:b_f 为表名

create table b_f(id int,p1 int,p2 int);
insert into b_f values(1,2,1);
insert into b_f values(2,1,2);
insert into b_f values(3,11,12);
insert into b_f values(4,12,11);
insert into b_f values(5,13,2);
go

 初始化数据:

delete b_f where id in
(
   select id from  b_f where p1  in 
    (select  case when a.p1> a.p2 then a.p1  else a.p2 end  from b_f a, b_f b 
       where  a.p1 = b.p2 and a.p2 = b.p1)
)

删除逆反的p1较的值后的结果:

追问
有3000万条数据,这个有妙招吗?
创作者BbPV9CfuDM
2014-11-15 · TA获得超过1445个赞
知道小有建树答主
回答量:977
采纳率:85%
帮助的人:185万
展开全部
delete a from table a,table b where a.p1 = p.p2 and a.p1>b.p2
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dgddssdhh
2014-11-15 · TA获得超过769个赞
知道小有建树答主
回答量:1455
采纳率:53%
帮助的人:520万
展开全部
貌似多条数据的话,删除就都删除了,不能够剩余一条吧。
这个感觉还是程序操作比较好吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星河传说321
2014-11-15
知道答主
回答量:1
采纳率:0%
帮助的人:1440
展开全部
问题不够详细,id列是否为自增唯一列?如果图中1行和2行互换,应该保留哪一行?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
anjkma
2014-11-15
知道答主
回答量:28
采纳率:0%
帮助的人:15.5万
展开全部
这么牛啊 我也想知道 关注一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式