【问题标题】:Multiple categories with one posts in sql query in php/mysql在 php/mysql 中的 sql 查询中包含一个帖子的多个类别
【发布时间】:2016-11-10 13:37:04
【问题描述】:

我做了两张桌子

  1. 帖子
  2. 类别

posts 表中我创建了类别列,这里我存储了多个 category_id 像这样 1,2,3

问题是,如果类别列有单个 category_id,如 123,我可以轻松地查询如下数据:

SELECT title FROM posts WHERE category = $category_id

但是,我不确定如何查询逗号分隔的数据。有没有办法做到这一点,或者我应该改变表结构?

【问题讨论】:

  • 添加另一个表。使用 post_id 和 category_id 将其称为 posts_categories
  • 永远不要将数据存储为逗号分隔的项目。只会给你带来很多麻烦。
  • 添加一个联结表,它有 2 个外键引用 Posts 表和 Categories 表。就像@aynber 说的。第三个表只会将外键引用到主表。
  • 为什么是 MS SQL Server 标签?

标签: php mysql sql sql-server wordpress


【解决方案1】:

在这里您可以拥有: 类别编号:1 Postid: 1,2,3

Result = Categoryid: 1 --> Postid 1,2,3

【讨论】:

    【解决方案2】:

    您可以创建一个联结表(可能使用EAV design)或保留您的唯一表并使用FIND_IN_SET,如下所示:

    SELECT title FROM posts WHERE FIND_IN_SET(1, category) > 0
    

    【讨论】:

      猜你喜欢
      • 2013-12-10
      • 2012-10-14
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 2021-08-10
      • 2018-01-19
      • 2021-10-05
      相关资源
      最近更新 更多