Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa mendapatkan ID induk baris dalam tabel MySQL ini secara rekursif?

Ini situs web memiliki ikhtisar yang sangat bagus tentang berbagai metode untuk menyimpan data hierarkis di mysql dan PHP. Untuk menjawab pertanyaan Anda, cara termudah adalah dengan menggunakan php dan rekursi. Ada metode lain yang dapat Anda gunakan seperti modified preorder transversal , yang tidak memerlukan beberapa kueri basis data. Tetapi metode ini bisa lebih rumit untuk diterapkan ketika berhadapan dengan banyak penyisipan dan pembaruan.

Metode lain yang sangat keren dan favorit pribadi saya adalah apa yang disebut "tabel penutupan" / "hubungan kedekatan" yang disebutkan dalam Apa cara paling efisien/elegan untuk mengurai tabel datar menjadi pohon?

Mengenai komentar Anda, pada dasarnya Anda harus membuat loop atau fungsi rekursif yang memilih induk chicago, lalu induk dari induk dan seterusnya.

$stack = array();
$parent = 3;
while($parent != 0){
    $data = (put your mysql to get the row with parentID = $parent)
    $parent = data['parentID'];
    $stack[] = $data;
}

$stack = array_reverse($stack);

Stack kemudian akan berisi induk Chicago, (mis. lokasi, AS)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapitalisasi huruf pertama. MySQL

  2. Pemicu MySQL:Perbarui saat mencapai waktu tertentu

  3. Facebook tidak dapat mengikis data meta setelah saya memindahkan Wordpress ke server baru

  4. Bagaimana cara mengubah datetime MySQL ke NSDate?

  5. Memproses hasil MySQL di bash