gpt4 book ai didi

php - 查找具有常见标签的 mysql 条目

转载 作者:行者123 更新时间:2023-11-29 13:28:57 25 4
gpt4 key购买 nike

我有一些文章存储在 MySQL 表中。现在我想显示相关文章。所以我集成了一个名为“tags”的字段,它存储所有用逗号分隔的标签。到目前为止,我搜索的常见标签如下:

    foreach (explode(',', $article['tags']) as $key => $value) {
if ($key != 0)
$search.= ' OR';
$search .= " `tags` LIKE '%" . mysql_real_escape_string($value) . "%'";
}
$query = "SELECT title, id FROM `article` WHERE $search";

创建了一个这样的查询:

SELECT title, id FROM `article` WHERE `tags` LIKE '%tag1%' OR `tags` LIKE '%tag2%'

我想知道是否有更有效的方法来解决这个问题。我当前解决方案的负面影响是“%”,它会导致像“green”这样的极短标签与“greenteam”发生冲突。

最佳答案

您应该将标签存储在不同的表“标签”中,并在另一个名为“article_tag”的表中添加每篇文章和标签之间的关系。

表格

article
=======
id
title
...

tag
=======
id
label

article_tag
=======
article_id
tag_id

查询

SELECT article.id, article.title 
FROM article
JOIN article_tag ON article_tag.article_id = article.id
JOIN tag ON article_tag.tag_id = tag.id
WHERE tag.label IN ('tag1', 'tag2')

关于php - 查找具有常见标签的 mysql 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com