sql >> Databáze >  >> RDS >> Mysql

SQL vnořené pořadí podle?

Něco takového by mohlo fungovat:

SELECT *
FROM categories
ORDER BY IF(parent_id, parent_id, category_id), parent_id, display_order

ale protože neumí používat index, bude to pomalé. (I když netestoval, může být špatně)

První ORDER BY stav třídí rodiče a děti dohromady; pak druhý zajišťuje, že rodič předchází své děti; třetí třídí děti mezi sebou.

Také to bude samozřejmě fungovat pouze v případě, který jste přímo popsali, kde máte dvouúrovňovou hierarchii.



  1. mySQL převést varchar na datum

  2. Odstranění duplikátů z výsledku vícenásobného spojení v tabulkách s různými sloupci v MySQL

  3. Funkce MAX() v MariaDB

  4. Kdy mám použít CROSS APPLY přes INNER JOIN?