我正在努力寻找解决方案。我有以这种形式插入数据库的标签
mytags=第一个标签、第二个标签、第三个标签
在单个页面上,我需要根据我正在使用的这些标签显示相关项目
SELECT * FROM posts WHERE tags LIKE \"%$mytags%\" ORDER BY views DESC LIMIT 5"
然而,这并没有多大作用,因为它只搜索具有完全相同的标语(firsttag、secondtag、thirdtag)的帖子,而不搜索其标签包含其中一个标签(firsttag、anothertag 和anothertag)的帖子。
我想过分解 mytags,然后使用数组中的第一个标签进行搜索,但这效果不太好。
有人知道有效的搜索方法吗?
最佳答案
为什么不使用单独的表来保存帖子标签?我的意思是例如表“posts”、表“tags”和关系表“posts_tags”。 这是“帖子”的结构:
id
title
content
这是“标签”的结构:
id
tag_name
这是“posts_tags”的结构:
id
post_id
tag_id
这是“多对多”关系模型的方案。现在,您可以通过 JOIN 运算符轻松查找标签或/和帖子。
关于php - 在 PHP/MySQL 中使用标签进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7312163/