环境: MySQL 5.6
SqlTable名称= CategoryTable
Sql列
(INT)
我试过了
SELECT
CATEGORY_ID, CATEGORY_NAME , LEVEL , MOTHER_CATEGORY
FROM
CategoryTable 但我不知道怎样才能得到这个结果。
这里的第一行是列,从第二行开始表内容:
CATEGORY_ID CATEGORY_NAME LEVEL MOTHER_CATEGORY
1 MainCategory 0 0
2 -SubCategory1 1 1
3 --SubCategory2 2 2
4 ---SubCategory3 3 3
5 2Nd_Main_Category 0 0
6 -SubCategory1 1 5
7 --SubCategory2 2 6
8 ---SubCategory3 3 7有什么方法可以通过mysql查询实现这样的目标吗?
发布于 2022-07-16 21:25:35
你不太清楚你在努力实现什么。我猜您希望使用多层父级子结构来订购。在mysql 5.6中有一些非常复杂的方法来处理这样的壮举,这是一个不太适合这种结构的DB,但是我自己想出了一些我在自己的应用程序中使用的简单方法。创建一个特殊的排序字段,为每个记录创建一个零填充ids的路径。
ordering_path_field
/
/0000000001/
/
/0000000001/0000000002
/0000000003
/0000000003/0000000005
/0000000003/0000000005/0000000006等
因此,每个记录都包含每个父记录到根的路径,使用的是零填充ids。然后,你可以按这个字段进行排序,以使它们按正确的顺序排列。缺点是,您必须设置允许的最大级别数,这样排序字段就不会溢出,而且,如果需要的话,将记录移动到新的父级将是很大的痛苦。
https://stackoverflow.com/questions/73007686
复制相似问题