gpt4 book ai didi

mysql - 防止联合全文搜索中的重复结果

转载 作者:行者123 更新时间:2023-11-30 21:34:22 28 4
gpt4 key购买 nike

我有两个表,分别是帖子和信息,每个帖子可以有多行信息。

表结构是这样的,

post (int id, int published, varchar title)

info (int id, text content, int post_id)

我想在 info 中进行简单的全文搜索,并返回一个帖子列表,但我希望帖子行只在结果列表中显示一次,即使它在 info 中多次找到查询文本,

我当前的查询看起来像这样,但它仍然返回具有相同 id 的多个帖子行,

SELECT 
DISTINCT(post.id),
post.title,
info.content
FROM
post, info
WHERE
info.post_id = post.id
AND published = 1
AND MATCH(info.content) AGAINST('cucumber')

最佳答案

在 mysql 中,distinct 子句适用于行而不适用于单个列值

如果你只需要一个结果,你应该使用聚合函数和分组依据

    SELECT 
post.id,
min(post.title),
min(info.content)
FROM post
INNER info ON info.post_id = post.id
AND published = 1
WHERE MATCH(info.content) AGAINST('cucumber')
group by post.id

关于mysql - 防止联合全文搜索中的重复结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54735726/

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