【问题标题】:How can I search upto sub level categories using mysql?如何使用 mysql 搜索子级别类别?
【发布时间】:2011-12-19 06:58:15
【问题描述】:

我有一个包含 30000 种产品的数据库,所有产品都分配了不同的类别。所有类别都有一个单独的表,子类别也存储在同一个表中。 表结构是这样的

Category_mst

category_id_pk、category_name、parent_id

Product_mst

product_id_pk、product_name、category_id_fk(参考Category_mst->category_id_pk)

类别存储到任意数量的子级别。 所以可以有像下面这样的类别

衣服 > 衬衫 > 童装 > 红色

产品存储在任何级别的类别中。 我想做一个查询或一个 php 脚本,它可以找出所有没有产品的类别(直到任何子级别)。

我该怎么做?

提前致谢。

【问题讨论】:

  • 如果您可以为每个子类别获取 category_id_pk,请在 SQL 中使用 OR 语句(“select product_id_pk from product_mst where category_id_pk=X OR category_id_pk=Y OR category_id_pk=Z”)。然后使用mysql_num_rows();
  • 我建议您更改数据库设计以使您的生活更轻松。查看这篇文章vbmysql.com/articles/database-design/…

标签: php mysql select categories product


【解决方案1】:

您正在尝试将分层数据存储在数据库中。
天真的方法是一种非常糟糕的方法,因为 MySQL 不支持递归查询(与 Oracle 或 SQL-server 不同)。
改变你的数据库设计。

见:The Nested Set Model hierarchical data
Implementing a hierarchical data structure in a database

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2011-09-12
    相关资源
    最近更新 更多