【发布时间】:2010-10-04 18:53:57
【问题描述】:
我有 2 张桌子:
- 帖子
- 标签
标签表的结构如下:
- post_id
- 标签
因此,对于为帖子提供的每个标签,我都会在标签表中创建一条记录。如果一个帖子有 10 个标签,那么 tags 表中就会有 10 条记录具有该 post_id。
我现在正在尝试构建一个搜索页面,用户可以在其中搜索标签不包含给定关键字的帖子。但是,这会产生一个问题。像这样的查询:
SELECT DISTINCT posts.id, posts.title, posts.content
FROM jobs, tags
WHERE tags.tag NOT LIKE '%$keywords%' AND posts.id=tags.post_id
不起作用,因为如果一个帖子有6个标签,其中一个有关键字,它仍然会被返回,因为标签表中的其他5条记录没有那个关键字。
解决这个问题的最佳方法是什么?除了在帖子表中创建一个新列来存储所有仅用于搜索的逗号分隔标签之外,还有其他方法吗??
【问题讨论】:
标签: php mysql database database-design