在mysql中连接任意数量的字符串行(分层查询)

Mar*_*ius 1 mysql string directory tree concat

我有一个带有专辑的mysql表.每张专辑可以是顶级专辑,也可以是其他专辑的儿童专辑.每张专辑都有一个foldername,它是其图片所在文件夹的名称.每张专辑还有一个名为parent的字段,即父母专辑的id.所以,如果我有一个像这样的图像的路径:

root/album1/album2/image1.jpg
Run Code Online (Sandbox Code Playgroud)

那么数据库中的专辑表将如下所示:

id parent foldername
1  NULL   root
2  1      album1
3  2      album2
Run Code Online (Sandbox Code Playgroud)

那么问题是,如何只使用mysql从此表中获取之前打印的路径?

seb*_*ert 7

我不确定在数据库中存储树是个好主意......

为了简化您的问题,可能只需将相册的完整路径存储在表格的一列中......

id parent path           foldername
1  NULL   /              root
2  1      /root/         album1
3  2      /root/album1/  album2
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,规范化数据库会导致比解决的问题更多的问题.这是一个很好的解决方案,可以节省大量的工作. (2认同)