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

Memilih catatan dalam urutan id induk

Jika mereka yang tidak memiliki orang tua memiliki null di parent . mereka kolom, pernyataan Anda akan sangat sederhana:

SELECT id, name, parent FROM categories order by coalesce(parent, id), id;

Jika Anda bersikeras pada 0 tidak mewakili orang tua, Anda dapat menggunakan lebih banyak CASE WHEN ... THEN ... pernyataan.

Sunting:

-- Sorting by name instead
select a.id, a.name, a.parent 
from categories a left join categories b on a.parent=b.id 
order by coalesce(b.name, a.name), a.name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mana yang lebih cepat — INSTR atau LIKE?

  2. Bagaimana cara mengambil baris unik berdasarkan kombinasi nilai kolom?

  3. Apa cara terbaik untuk melakukan pencadangan tambahan di MySQL?

  4. Apakah ada perbedaan antara DATE_SUB() dan menggunakan operator aritmatika untuk perhitungan datetime?

  5. Array nilai meta serial WooCommerce di tabel wp_postmeta