我们在新闻帖子中添加标签(我们使用自己的CMS),我想根据用于个别故事的标签来提取5个相关故事。我们在数据库中有空格分隔的标签,因此我使用此代码将标签放入数组
$tags = explode(" ", $tags);
既然我们在数组中有标签,我想用它们从数据库中提取相关的故事。
foreach($tags as $t) {
$pullRelated = mysql_query("SELECT * FROM `posts` WHERE `tags` LIKE '%$t%' AND `newsID` != '$newsID' LIMIT 5");
问题在于,如果有3个标签,它将显示15个相关故事(每个标签5个)。我想要的是,如果有2,3,4或5个标签,显示所有标签的混合故事,但仍然只显示5个故事。
么?
答案 0 :(得分:0)
因此,您可以在posts表中将标记(关键字,类别)作为空格分隔的字符串。
除此之外,没有什么可以说的,除非你需要规范化你的设计,这将减轻你的所有问题,并使你的应用程序显着提高效率,判断你到目前为止所显示的内容。
沿着这条线的东西就足够了:
Rewriting mysql select to reduce time and writing tmp to disk