我很难开始这个想法。我有一个 SQL 数据库和一个 JAVA/Apache(tomcat) 的 html 界面。我试图制作一个简单的数据库,对歌曲名称进行排序并与歌曲的关键字匹配。 例如,我输入了“史诗、电影、女王、歌唱”等关键字,而像《女王波西米亚狂想曲》这样的歌曲满足了大部分标准,它是一首来自“电影”并由“女王”演唱的“史诗”歌曲,因此这将成为值为 3。 而且在数据库中,像《queen we are the Champion》这样的歌曲将满足所有关键字(史诗、电影、女王、歌唱)-> 所以这首歌将是 4。
我涉足了 sql 和一些 JAVA 代码中的计数函数,但我找不到一种方法来切换关键字,或者对它们进行计数以查看哪个结果更好。
我应该去哪里学习如何制作这样的东西?
<小时/>非常感谢您的解释和链接。经过几个小时的阅读和重读,我对数据库结构有了更多的了解。并拥有一个近乎实用的网页。我还有最后一个问题。查询给出了歌曲 ID 和计数的结果。我想了几种方法来显示歌曲名称。
我的第一个想法是将名称添加到连接表中。
第二步是创建一个临时表( View ),然后使用该信息从其他表中查找数据。
第三步是编写一个java代码来获取原始结果,然后只显示歌曲名称和计数。 ....
我认为我在 SQL 功能中缺少一些简单的功能来更好(更有效)地处理数据。
最佳答案
假设您的数据库有两列:tag 和 Song_id,如下所示:
CREATE TABLE tags(tag STRING KEY, song_id INT);
然后您可以在 SQL 查询中执行所有操作:
SELECT song_id, count(*)
FROM tags
WHERE tag IN ("epic", "movie", "queen", "sing")
GROUP BY song_id
ORDER BY count(*) DESC;
关于java - 使用 SQL 中的关键字对搜索结果进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100622/