怎样把mysql 当中两个项当中重复字段(3个字姓名)的整条记录删除

我有一个MYSQL数据库数据字段主要是人的姓名与地址,还有其它信息姓名乡镇地址电话号码姓名2张小三A镇XXXX12345李四黄大山B镇XXXX12344张小三李小明B镇X... 我有一个MYSQL数据库 数据字段主要是人的姓名与地址,还有其它信息
姓名 乡镇 地址 电话号码 姓名2
张小三 A镇 XXXX 12345 李四
黄大山 B镇 XXXX 12344 张小三
李小明 B镇 XXXX 34454 黄五五
周小东 C镇 XXXX 33242 张小强
黄五五 X镇 XXXX 33434 李东东

怎样用MYSQL 把列“姓名2”中的每一个字段与列“姓名”中的每一个字段作比较,把当中两个列重复字段的整一条记录删除

如例子当中的两条记录就需要删除了
张小三 A镇 XXXX 12345
黄五五 X镇 XXXX 33434
展开
 我来答
华夏日长兴
2010-06-04 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3718万
展开全部
最后给你定下的删除语法为:
delete a from 表 a,表 b where a.姓名=b.姓名2 ;

楼上的我觉得你对事务应该了解的不够吧,在一个事务里边删除记录并不是一行一行提交的,而是一起提交的,所以用这种方式完全可以删除,我已经测试通过了!
下面是测试代码:
/*
MySQL Data Transfer
Source Host: localhost
Source Database: wxg
Target Host: localhost
Target Database: wxg
Date: 2010-06-04 12:23:36
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for 表
-- ----------------------------
CREATE TABLE `表` (
`姓名` varchar(20) default NULL,
`姓名2` varchar(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=gbk;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `表` VALUES ('张小三', '李四');
INSERT INTO `表` VALUES ('黄大山', '张小三');
INSERT INTO `表` VALUES ('李小明', '黄五五');
INSERT INTO `表` VALUES ('周小东', '张小强');
INSERT INTO `表` VALUES ('黄五五', '李东东');

delete a from 表 a,表 b where a.姓名=b.姓名2 ;
这样会删除两行
默然0012
2010-06-04 · TA获得超过120个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:170万
展开全部
我觉得前面几个人的方法都有漏洞
如果有数据
张小三 A镇 XXXX 12345 李四
黄大山 B镇 XXXX 12344 张小三
李小明 B镇 XXXX 34454 黄大山
这样如果第二条和第一条删掉后第三条就删不掉了

如果这样就要通过程序来控制了,而不是简单的用sql语句可以做到了
先select
然后通过程序循环删除吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9c1b57b
2010-06-04 · TA获得超过746个赞
知道小有建树答主
回答量:298
采纳率:100%
帮助的人:287万
展开全部
delete
from table
where 姓名 in
(select 姓名2 from table) ??
随便写的 不知道对不对
主要意思就是把先把姓名2这一列查询出来,然后从表的第一行开始逐行检查姓名中的字段名是否出现在姓名2这个集合中,若是,则删除整行数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式