mysql, jadual yang sama mengubah suai salah satu daripada dua medan berdasarkan dua medan
迷茫
迷茫 2017-05-18 10:50:49
0
1
739

Terdapat jadual pelajar Medan jadual termasuk id, nama, parent_id, createDate, dsb. Sekarang kita perlu mengubah suai nama pelajar dengan nama yang sama di bawah parent_id yang sama mengikut parent_id, name, untuk memastikan tiada nama pelajar. lebih banyak pendua di bawah nama parent_id yang sama, cara menanganinya

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(1)
Ty80
select * 
  from student 
  where id not in(select min(id) from student group by parent_id,name)t

Ini adalah untuk mencari pelajar pendua Bagi cara mengubah suai, terpulang kepada anda.

Ditambah:
Pengubahsuaian adalah untuk mengisih mengikut createDate, dan kemudian menambah nombor siri yang diisih selepas nama

update student t1 inner join 
    (select idx,id 
     from
         (select if(@m_last_parent_id=parent_id and @m_last_name=name,@m_i:=@m_i+1,@m_i:=0) idx,
             @m_last_parent_id:=parent_id,@m_last_name:=name,id,parent_id,name,createDate 
          from student
          order by parent_id,name,createDate
         )m 
     where idx>0
    )t2 on t1.id=t2.id 
set t1.name=concat(t1.name,t2.idx);

Ini adalah keputusan ujian saya sendiri:

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan