我正在尝试在我的文章标签中进行多标签搜索。所以我有一个表tags_posts
(列是id_tag
和id_post
)。
如果用户输入几个标签(我将使用逗号和数组分离和解析它们),SQL查询应该返回所有帖子,在用户的输入中有所有标签。
我尝试过的:
SELECT DISTINCT id_post, content, author_id, created, updated, username
FROM tags_posts
INNER JOIN posts ON posts.id=tags_posts.id_post
INNER JOIN users ON users.id=posts.author_id
WHERE id_tag IN (1,2,3)
字符串
但在这种情况下,如果任何一个标签id在任何帖子中有,该帖子将返回。但我在找那篇文章的所有标签。
4条答案
按热度按时间aij0ehis1#
试试看
字符串
HAVING
子句确保查询仅返回具有all(示例中为三个)标签的帖子。下面是SQLFiddledemo
osh3o9ms2#
字符串
b1payxdu3#
传递要搜索的标签ID,用逗号分隔,例如$search,然后使用以下查询:
字符串
9nvpjoqh4#
你可以使用MySQL中的“IN”语句来解析标记吗?
字符串