网上大部分都是抄一个人的,都有rowid,但有时候表中不一定有rowid,另一个简单的方法就是把重复数据先提取出来存入临时表,然后删除原表中的所有重复数据,最后将临时表中的加入到原表。
步骤:
- 寻找重复数据:
select * from 原表 group by 重复字段名 having count(重复字段名)>1;
- 创建临时表存取重复数据中的一条:
create table 新表名 as (select * from 表名 group by 重复字段名 having count(重复字段名)>1);
- 设置安全等级,因为之后删除重复数据可能会权限不足:
SET SQL_SAFE_UPDATES = 0;
- 删除重复数据:
delete from 原表 where 重复字段名 in (select 重复字段名 from 新表) ;
- 将临时表单中的数据插入回去:
insert into 原表 select * from 新表名;
- 删除临时表:
drop table 新表名;
例子:
统计表有多少行:
select count(*) from 表名
创建表:
其中含有primary key的列为主键
create table 表名(
列名 类型(长度)primary key,
列名 类型(长度),
...);
插入值:
insert into 表名(列名1,列名2,列名3,...)
values (值1,值2,值3,...) ',