比如,表:event(id int(10) auto_increment primary key,
                 sid int(10)not null,
                 detail text)我想删除表event中sid重复的记录,请问有没有这样SQL语句?或是通过其它方法?

解决方案 »

  1.   

    delete event from event inner join vent t on t.sid = event.sid and t.id < event.id
      

  2.   

    delete from event as e
    where sid != (select min(sid) from event where sid=e.sid);.
        [align=center]====  ====
    [/align]
    .
    贴子分数<20:对自已的问题不予重视。
    贴子大量未结:对别人的回答不予尊重。
    .
      

  3.   

    上面错了,重贴一下。delete from event as e
    where id != (select min(id) from event where sid=e.sid);
    ordelete from event
    where sid not in (select mid from (select sid ,min(id) as mid from event group by sid)).
        [align=center]====  ====
    [/align]
    .
    贴子分数<20:对自已的问题不予重视。
    贴子大量未结:对别人的回答不予尊重。
    .
      

  4.   

    推荐你看一下这些帮助
    SQL 1992
    MySQL 5.1 Reference Manual
    ActiveX Data Objects 2.5 Reference 下载
    数据库系统概论PPT.
        [align=center]====  ====
    [/align]
    .
    贴子分数<20:对自已的问题不予重视。
    贴子大量未结:对别人的回答不予尊重。
    .
      

  5.   


    alter ignore table event add unique index idu_sid (sid);
    alter table event drop index idu_sid;