oralce与mysql中,如何删除重复记录
最近遇到这么一个问题:要求删除表中重复的记录。具体来说:比如有一张用户表,用户姓名不是主键可以重复,存在这种情况,一个用户姓名被录入了好几次,如何删除重复的记录,同时要保留一条该用户录。没有具体说明保留那条记录,只要用户姓名重复的保留一条即可。
示例:
animal 表:
create table animal (
id int ,
name varchar2(100),
sex varchar2(10)
);
添加记录:
insert into animal values (1, 'tom', 'male');
insert into animal values (2, 'tom', 'female');
insert into animal values (3, 'tom', 'ff');
insert into animal values (4, 'lili', 'male');
id为1,2,3的三条记录名字重了,要求只保留一条,删除另外两条。
oralce数据库中,该问题解决方法的具体实现如下:
delete from animal a where rowid<(select max(b.rowid) from animal b where a.name=b.name);
结果:
剩下两条记录。一条name=lili,一条name=tom.
-----------------------------------------------------------------------------
mysql数据库中,该问题解决方法的具体实现:
alter ignore table animal add unique index (name);
结果同上面。
总结:
类似问题oracle参考手册,mysql参考手册中大多有讲解。平时学习时,注意多看权威的参考资料,有助于全面掌握知识,并系统化,规范化。
相关文档:
使用hibernate mysql 插入中文错误:
原因之一是:
mysql 的字符编码和hibernate传递的编码不一样,
例如:
mysql 建库的时候可以设置编码:
CREATE DATABASE db DEFAULT CHARACTER SET utf8;
hibernate 连接mysql的编码:
jdbc:mysql://127.0.0.1:3306/db?useU ......
忘记MySQL(和PHP搭配之最佳组合)
ROOT密码是在MySQL(和PHP搭配之最佳组合)使用中很常见的问题,可是有很多朋友并不会重置ROOT密码,那叫苦啊,我有深有感触,特写此文章与大家交流:
1、编辑MySQL(和PHP搭配之最佳组合)配置文件:
windows环境中:%MySQL(和PHP搭配之最佳组合)_installdir%\my.ini //一般 ......
1.在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show databases。对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也 ......
最近因为忘了mysql的root密码,上网Google一下,现在把步骤记一下,防止以后忘了。
我用的是xampp软件包。
1. 停止mysql
2. 打开cmd,切换目录到 \xampp\mysql\bin, 运行
mysqld -skip-grant-tables
这条命令是跳过权限检查启动mysql服务
3. 打开另一个cmd,同样切换目 ......
查询重复记录 select * from table GROUP BY name
只把有重复的显示出来
select * ,count(*) as nums from tab_a group by name having nums>1
方法一:(这个方法比较不错,只是自增字段会重建)
新建一个临时表
create table tmp as select * &nb ......