PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menyortir pohon dengan jalur terwujud?

Saya yakin jalan terwujud Anda tidak benar.

Logika apa yang Anda dapatkan untuk mengurutkan hal-hal seperti ini

1
1.2
1
1.5

Mengapa yang kedua tidak sama dengan yang pertama?

Jika Anda memiliki

1
1.2
2
2.5

Ini akan menjadi hal yang sepele.

EDIT:Saya telah melihat contoh Anda dan Anda tidak menyimpan jalur material dari sebuah baris, tetapi Anda menyimpan jalur material dari baris induk. Beginilah seharusnya jalur material dari baris tersebut. Menyortir langsung di matpath akan berfungsi jika Anda tidak memiliki lebih dari 9 cabang jika Anda menyimpannya sebagai:

 id | parent_id | matpath   |          created
----+-----------+-----------+----------------------------
  2 |         1 | 1.2       | 2010-05-08 15:18:37.987544
  6 |         2 | 1.2.6     | 2010-05-08 17:50:43.288759
  8 |         6 | 1.2.6.8   | 2010-05-09 14:01:17.632695
  3 |         1 | 1.3       | 2010-05-08 17:38:14.125377
  4 |         1 | 1.4       | 2010-05-08 17:38:57.26743
  5 |         1 | 1.5       | 2010-05-08 17:43:28.211708
  9 |         5 | 1.5.9     | 2010-05-09 14:02:43.818646
  7 |         1 | 1.7       | 2010-05-08 18:18:11.849735

jika tidak (>9) Anda harus mengubah matpath menjadi sesuatu seperti

001.002.006
001.002.006.008

yang akan mendukung hingga 999 cabang.

Harap dicatat

  • bahkan pendekatan dengan 4 digit tetap, seperti 0001.0002.0006 akan memberi Anda bidang yang lebih pendek dari jawaban yang diterima
  • Anda dapat mengurai matpath dan menghasilkan nilai penyortiran dengan cepat dengan fungsi pengguna
  • Anda bisa langsung menyimpan matpath dalam format ini (juga memiliki beberapa properti bagus lainnya)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan data lokal ke dalam database hanya-baca menggunakan dplyr?

  2. Variabel yang ditentukan pengguna di PostgreSQL

  3. Cara Membuat Total Periode Bergulir

  4. Kesalahan PostgreSQL 'Tidak dapat terhubung ke server:Tidak ada file atau direktori seperti itu'

  5. Jenis JOIN apa yang digunakan