首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过标签查找相关项目

问通过标签查找相关项目
EN

Stack Overflow用户
提问于 2016-01-01 19:16:28
回答 2查看 66关注 0票数 1

如何通过格式"tag1,tag2,tag3“将其转换为单个tag1查询字符串以查找相关项?上面的代码很混乱,会为此使用太多的资源。也许有更好的解决办法。谢谢

代码语言:javascript
复制
$related = [];
$q = mysql_query("select tags from items");
while($row = mysql_fetch_assoc($q)){
$tags = $row['tags']; //format: tag1,tag2,tag3
$split = explode(",",$tags);

foreach ( $split as $tag):
    $find = mysql_query("select * from items where tags = '".$tag."'");
    $again = mysql_fetch_assoc($find);

    $related[] = $again;
endforeach;

echo "Found related:<br>";
print_r($related);

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-01 22:51:00

使用mysql find_in_set()函数。它是这样工作的。

代码语言:javascript
复制
SELECT * FROM items WHERE FIND_IN_SET(tag1,tag2,tag3) > 0;

由于传入的输入已被命令分隔,所以只需添加引号即可。

代码语言:javascript
复制
$tags = $row['tags']; //format: tag1,tag2,tag3
$set = "'".implode("','", $tags)."'";

$sql = "SELECT * FROM items WHERE FIND_IN_SET(" . $set . ") > 0);
票数 0
EN

Stack Overflow用户

发布于 2016-01-01 19:52:39

您可以检索已排序的查询,从而消除代码中对几个查询的需求:

代码语言:javascript
复制
SELECT * FROM items ORDER BY tags ASC;

您只需跟踪上一个tags,以便知道何时开始使用下一个标记。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34559205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档