[英]mysql sort results by relevance case issue
I am trying to sort Movies based on their Titles Relevance. 我正在尝试根据电影的标题相关性对电影进行排序。
Here are the raw Mysql Query Results. 这是原始的MySQL查询结果。
21126 A Frozen Flower
4557 Cashback
4504 Frozen
36645 Frozen
509 Frozen Assets
20649 Frozen Flesh
24752 Frozen Kiss
25675 Frozen Land
4783 Frozen River
11798 Frozen River
11856 Frozen Scream
21755 Frozen Silence
26333 Frozen Thrills
8532 Frozen Water
16196 God Don't Make the Laws
6158 The Frozen Ground
28160 The Thaw
7320 Winter of Frozen Dreams
Current Code I am using 我正在使用的当前代码
SELECT * FROM `movies`
WHERE `Title` LIKE '%Frozen%'
OR `other_title` LIKE '%Frozen%'
GROUP BY `Title` ORDER BY CASE
WHEN `Title` = 'Frozen' THEN 0
WHEN `Title` like 'Frozen%' THEN 1
WHEN `Title` like '% %Frozen% %' THEN 2
WHEN `Title` like '%Frozen' THEN 3
ELSE 4
END, `Title`
and here are the results 这是结果
4504 Frozen
509 Frozen Assets
20649 Frozen Flesh
24752 Frozen Kiss
25675 Frozen Land
4783 Frozen River
11856 Frozen Scream
21755 Frozen Silence
26333 Frozen Thrills
8532 Frozen Water
21126 A Frozen Flower
6158 The Frozen Ground
7320 Winter of Frozen Dreams
4557 Cashback
16196 God Don't Make the Laws
28160 The Thaw
Ok The results look pretty good except that where there were duplicate Titles they were not displayed. 确定结果看起来不错,除了没有重复标题的地方。
Any Idea how to Fix this issue?? 任何想法如何解决这个问题?
The duplicate is being removed by the group by
. 重复的正被除去
group by
。 Just remove that: 只需删除:
SELECT *
FROM `movies`
WHERE `Title` LIKE '%Frozen%' OR `other_title` LIKE '%Frozen%'
ORDER BY (CASE WHEN `Title` = 'Frozen' THEN 0
WHEN `Title` like 'Frozen%' THEN 1
WHEN `Title` like '% %Frozen% %' THEN 2
WHEN `Title` like '%Frozen' THEN 3
ELSE 4
END), `Title`
It sounds to me like you might want to use natural language search functionality in MySQL. 在我看来,您可能想在MySQL中使用自然语言搜索功能。 This will allow you to match search criteria against multiple fields and have them automatically sorted by relevance.
这将使您可以将搜索条件与多个字段进行匹配,并使它们根据相关性自动排序。
See this link for more details: http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html 有关更多详细信息,请参见以下链接: http : //dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.