Mysql diğer tablo satırları dayalı bir tablodaki satırları değiştirmek nasıl?

1 Cevap php

Id, a_id ve b_id: ben 3 sütunları olan bir tablo var.

Varsayalım satırlar şu şekildedir:

1, a1, b1
2, a1, b2
3, a1, b3
4, a2, b4
5, a2, b5
6, a2, b6

Ben dönüştürmek istiyorum

1, a1, b1
2, a1, b1
3, a1, b1
4, a2, b4
5, a2, b4
6, a2, b4

Yani hepsi aynı a_id tekabül b_id ve ilk bulunduğunda birine eşit yapmak istiyorum. Bunu nasıl yapabilirim? Basitlik için, ben masanın diğer sütunları kaldırdık. Yani burada satır tekrarını önemsemeyin.

1 Cevap

b_id her bir id grubuna matematiksel olarak küçük olduğunu varsayarak:

UPDATE
  tbl
SET
  b_id = (
    SELECT MIN(b_id) 
      FROM tbl AS i
     WHERE i.id = tbl.id AND i.a_id = tbl.a_id
  )