Mysql 按排序时,匹配分数/相关性列返回0

Mysql 按排序时,匹配分数/相关性列返回0,mysql,Mysql,当我运行下面的查询时,分数列始终为0: SELECT *, ( (MATCH (search.primary) AGAINST ('"test"' IN BOOLEAN MODE) * 5) + (MATCH (search.secondary) AGAINST ('"test"' IN BOOLEAN MODE) * 2.5) + (MATCH (search.tertiary) AGAINST ('"test"' IN BOOL

当我运行下面的查询时,分数列始终为0:

SELECT
    *,
    (
        (MATCH (search.primary) AGAINST ('"test"' IN BOOLEAN MODE) * 5) +
        (MATCH (search.secondary) AGAINST ('"test"' IN BOOLEAN MODE) * 2.5) +
        (MATCH (search.tertiary) AGAINST ('"test"' IN BOOLEAN MODE) * 1)
    )
    AS score 
FROM
    publications 
    LEFT JOIN
        themes 
        ON themeUUID = publicationTheme 
    LEFT JOIN
        search 
        ON search.item_id = publications.publicationUUID
AND search.item_type = 'publication' 
WHERE
    publicationStatus = 'Live'
GROUP BY
    publicationUUID 
HAVING
    score <> 0
ORDER BY 
    score ASC
选择
*,
(
(将(search.primary)与(布尔模式下的“test”》匹配)*5)+
(匹配(search.secondary)与(布尔模式下的“test”)*2.5)+
(匹配(search.treative)与('test'(布尔模式下)*1)
)
作为分数
从…起
出版物
左连接
主题
在MEUUID=publicationTheme上
左连接
搜寻
ON search.item_id=publications.publicationUUID
和search.item_type='publication'
哪里
publicationStatus='Live'
分组
出版物UUID
有
得分0
订购人
得分ASC
但是,当我不按分数排序时,它会返回正确计算的分数

我使用的是MySQL版本5.6.22,这个查询在我使用MySQL版本5.7.18的开发服务器上运行良好


你知道为什么按排序时分数列总是0吗?提前感谢。

乍一看,这似乎不可能,因为你的
得分为0,但是。。。您是否碰巧在其中一个表中有一个名为
score
的列?@ThorstenKettner我将匹配所做的计算别名为score,查询本身工作正常,但当我尝试按分数排序时,score列始终返回0。是的,我理解这一点。如前所述,考虑到您的
具有
子句,这似乎是不可能的。但我要问的是,您的一个表是否碰巧也包含一个名为
score
的列。然后可能DBMS会与重复的名称混淆。我没有选择其他列作为名称分数,因为分数是一个聚合列,我无法在where子句中查询它。这是一个非常令人沮丧的问题,因为它在我的开发服务器上按预期工作:(我理解所有这些。我的问题是:在其中一个表中可能有一个名为
score
的列吗?好吧,简单一点:请在您的查询中将
score
重命名为
xxxscore
。这解决了问题吗?乍一看,这似乎是不可能的,因为您的
得分为0
,但是……您发生了吗n是否在其中一个表中有一个名为
score
的列?@ThorstenKettner我将匹配所做的计算别名为score,查询本身工作正常,但当我尝试按分数排序时,score列始终返回0。是的,我理解这一点。如前所述,考虑到你的
HAVIN,这似乎是不可能的G
子句。但我要问的是,您的一个表是否碰巧也包含名为
score
的列。然后,可能DBMS会与重复的名称混淆。没有其他列是我选择的名称score,我使用have,因为score是一个聚合列,我无法在where子句中查询它。这是这是一个非常令人沮丧的问题,因为它在我的开发服务器上按预期工作:(我了解所有这些。我的问题是:在其中一个表中可能有一个名为
score
的列吗?好吧,简单一点:请在查询中将
score
重命名为
xxxscore
。这解决了问题吗?