gpt4 book ai didi

SQL 多词搜索,按匹配数排序

转载 作者:行者123 更新时间:2023-12-05 00:05:39 24 4
gpt4 key购买 nike

我正在尝试使用多个搜索词编写 SQL SELECT 查询。但我希望结果按匹配的单词数排序。

例如,让搜索字符串为“red green blue”。我想要包含所有这三个单词的结果,然后是包含其中两个单词的结果,最后 - 只有一个单词匹配。

SELECT
*
FROM
table
WHERE
(col LIKE '%red%') OR
(col LIKE '%green%') OR
(col LIKE '%blue%')
ORDER BY
?????

提前致谢!

最佳答案

ORDER BY
(
CASE
WHEN col LIKE '%red%' THEN 1
ELSE 0
END CASE
+
CASE
WHEN col LIKE '%green%' THEN 1
ELSE 0
END CASE
+
CASE
WHEN col LIKE '%blue%' THEN 1
ELSE 0
END CASE
) DESC

如果您的数据库供应商有 IF , 你可以用它代替 CASE (例如,对于 Mysql,您可以编写
IF (col LIKE '%red% , 1,0) + IF(....'

关于SQL 多词搜索,按匹配数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4410521/

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