mysql - MySQL 中的无限子类别排序

标签 mysql sql

给定this table

是否可以编写 SQL 来编写 SELECT 查询,该查询将产生这样的顺序,同时无论表中的子类别数量如何都适用?我可以编写查询来获取带有硬编码数量的预期子类别的正确订单,但当该数量未知时我会遇到困难。

Miscellaneous
Personal
    Bobby
    Jane
    Susie
    Tom
    Other
        Work Lunches

或者我必须调整架构吗?

最佳答案

最好的方法是通过“嵌套集”模型来管理分层数据: http://en.wikipedia.org/wiki/Nested_set_model

乍一看,它可能看起来很陌生,但一旦你了解它,就会发现它非常棒。 (是的,我正在使用它,效果很好)

当然,这意味着您必须稍微更改架构(包括左右值),并且选择/插入/更新是不同的。但您可以非常轻松地一次性选择或重新附加整个分支。

关于mysql - MySQL 中的无限子类别排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22977130/

相关文章:

c# - DateTime 未在具有“DateTime”数据类型的 PHPMyadmin 数据库字段中保存正确的日期和时间

sql - 如果任何记录(带有 fieldvalue1)的 fieldvalue3 具有特定值,则选择带有 fieldvalue1 的所有记录

mysql - 选择 MySQL 中每项的最小值

用于查找表中最长名称和最短名称的 SQL 查询

mysql - 用于在 Web 应用程序中存储和检索异构文件的 Blob 或文件系统

php - 在 mysql 和 php 中查找重复的条目,并在下面列出所有条目

mysql 如果更新后全部为空则删除行而不触发

sql - SQLite中SQL Server STUFF函数的替代

sql - 将项目从一个表插入到另一个

mysql - MAMP 的 PHPMyAdmin 给我 #2002 mysql 错误