【发布时间】:2013-12-23 17:19:03
【问题描述】:
这个问题是基于我之前在stackoverflow 上提出的问题。这次我尝试使用 Modified Preorder Tree 方法为 pages 表中的所有行生成 url。
这里是MySql表: [注意:我添加了'parent'列,只是为了让观众了解类别表中的父子关系。实际的Modified Preorder Tree方法不使用父列(父子关系)]
我正在尝试编写一个 mysql 查询,该查询将使用产生以下输出的类别表为 pages 表中的所有行生成 URL。
预期行数:
/content/article/array/oops/classes
/content/article/array/oops/objects
/content/article/php/index
/content/article/php/quiz
/content/article/php/strings/strstr
/content/article/php/strings/str_substr
/content/blog/something1
/content/blog/something2
/content/blog/java/test-java
/content/blog/java/final-method
/content/about-us
/content/contact-us
这是我在类别表上尝试的参考Managing Hierarchical Data in MySQL。下面的 SQL 查询检索类别表中标题“oops”的单个路径。
SELECT concat('/',group_concat(parent.title separator '/')) as url
FROM category AS node, category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.title = 'oops'
ORDER BY parent.lft;
【问题讨论】:
-
好吧,您使用的是没有 GROUP BY 子句的聚合函数。这是基于文章中的一个例子吗?
-
@Strawberry 是的,我指的是显示如何检索单个路径的部分。有没有其他方法可以在不使用聚合函数的情况下编写查询来为 pages 表中的所有行生成 url?
-
@Strawberry 只是添加给观众理解,我现在在上面的问题中为观众添加了注释。
标签: php mysql database-design content-management-system seo