diff --git a/api/image.go b/api/image.go index b603840..a58b422 100644 --- a/api/image.go +++ b/api/image.go @@ -390,9 +390,14 @@ var ImageItems = &graphql.Field{ // 数据库中筛选:按游戏标签 if p.Args["tags"] != nil { tags := strings.Split(strings.ReplaceAll(p.Args["tags"].(string), " ", ""), ",") + var conditions []string for _, tag := range tags { - query = query.Where(goqu.L("MATCH(web_images.tags) AGAINST (? IN NATURAL LANGUAGE MODE)", tag)) + conditions = append(conditions, fmt.Sprintf("FIND_IN_SET('%s', web_article.tags)", tag)) } + query = query.Join(goqu.T("web_article"), goqu.On( + goqu.I("web_images.article_id").Eq(goqu.I("web_article.id")), + goqu.L(strings.Join(conditions, " AND ")), + )) } // 数据库中筛选:按游戏分类