gpt4 book ai didi

sql - SQL查询可对结果进行排名

转载 作者:行者123 更新时间:2023-12-03 19:31:02 26 4
gpt4 key购买 nike

我正在对具有titlecontenttag列的表实施基本搜索,只需在列值上使用LIKE即可。我希望为所有基于title匹配的行分配3点,基于tag匹配的行获得2点,并基于content进行匹配的行得到1点。

是否有可能将所有这些都放入查询中,而不需要使用3个查询?我目前有:

SELECT * FROM node WHERE title LIKE '%keywords%'


我正在使用SQLite以防万一。

最佳答案

使用case

select (case when <title condition> then 3
when <content condition> then 2
when <tag condition> then 1
end) as points, t.*
from t
where <title condition> or <content condition> or <tag condition>;


我不知道条件是什么。您可以填写。

如果有可能,您希望这些点相加(一行最多总计6个点),则逻辑类似:

select ((case when <title condition> then 3 else 0 end) +
(case when <content condition> then 2 else 0 end) +
(case when <tag condition> then 1 else 0 end)
) as points, t.*
from t
where <title condition> or <content condition> or <tag condition>;

关于sql - SQL查询可对结果进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41126118/

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