mysql去重sql语句,以及删除表部分内容,重新排序

DELETE wb_fmh_copy    --   表名  
FROM
 wb_fmh_copy,     --   表名
 (
  SELECT
   min(id) id,   --   查询最小id  并假命名id
   send_Time,  --   去重依据的字段,下面两个同是, 多个字段依据去重
   content,
   yuanchuang_info
  FROM
   wb_fmh_copy   --   表名
  GROUP BY
   send_Time,  --   分组依据字段
   content,
   yuanchuang_info
  HAVING
   count(*) > 1    --   分组后大于数量大于1的  即有重复内容
 ) t2    --   t2来代表查询的结果
WHERE
 wb_fmh_copy.send_Time = t2.send_Time   --   删除判断的条件为  查询的结果 等于 原表中内容的结果
 and wb_fmh_copy.content = t2.content
 and wb_fmh_copy.yuanchuang_info = t2.yuanchuang_info
AND wb_fmh_copy.id > t2.id;     --必须id为不一样的结果   

以上去重为一句去重sql , 修改转载于     https://www.jb51.net/article/129656.htm

简单一句去重sql,撬动整个数据库,就是这么魅力!

 ------大概流程,和sql意思为   

DELETE 表,from 表,t2  where   表.去重字段1 = t2.去重字段1  and ......  and 表.id > t2.id
其中t2 为查询sql语句 分组 重复的 结果集

 

去重后遗留的问题 如果 id 为自增长的,去重后id将不是完整的顺序-----如何重新自增 让 id 正常顺序-------navicat

删除主键栏位,   重新定义主键id ,并设置默认自增长,,保存打开表后,会发现id会重新排序

 

简单明了,直接上手,我的理念。

 

转载于:https://www.cnblogs.com/HugJun/p/11218487.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于Oracle和MySQL的语法有所不同,因此不能简单地将Oracle的SQL语句更改为MySQLSQL语句。需要根据具体的SQL语句进行转换。以下是一些常见的Oracle SQL语句,以及对应的MySQL SQL语句转换: 1. 查询表中所有数据 Oracle SQL:SELECT * FROM table_name; MySQL SQL:SELECT * FROM table_name; 2. 查询表中某个字段的数据 Oracle SQL:SELECT column_name FROM table_name; MySQL SQL:SELECT column_name FROM table_name; 3. 查询表中某个字段的数据排序 Oracle SQL:SELECT column_name FROM table_name ORDER BY column_name ASC/DESC; MySQL SQL:SELECT column_name FROM table_name ORDER BY column_name ASC/DESC; 4. 查询表中某个字段的数据去重 Oracle SQL:SELECT DISTINCT column_name FROM table_name; MySQL SQL:SELECT DISTINCT column_name FROM table_name; 5. 查询表中满足条件的数据 Oracle SQL:SELECT * FROM table_name WHERE condition; MySQL SQL:SELECT * FROM table_name WHERE condition; 6. 查询表中满足条件的数据排序 Oracle SQL:SELECT * FROM table_name WHERE condition ORDER BY column_name ASC/DESC; MySQL SQL:SELECT * FROM table_name WHERE condition ORDER BY column_name ASC/DESC; 7. 查询表中满足条件的数据并分页 Oracle SQL:SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM table_name t WHERE condition) WHERE rowno >= start_row AND rowno <= end_row; MySQL SQL:SELECT * FROM table_name WHERE condition LIMIT start_row, page_size; 需要注意的是,MySQL不支持ROWNUM这个概念,因此在分页查询时需要使用LIMIT关键字。同时,MySQL也不支持Oracle中的一些特殊函数和操作符,如CONNECT BY、ROW_NUMBER、DECODE等,需要根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值