cari

Rumah  >  Soal Jawab  >  teks badan

mysql, jadual yang sama mengubah suai salah satu daripada dua medan berdasarkan dua medan

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

迷茫迷茫2810 hari yang lalu758

membalas semua(1)saya akan balas

  • PHP中文网

    PHP中文网2017-05-18 10:52:49

    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:

    balas
    0
  • Batalbalas