gpt4 book ai didi

php - 从多个表(php、mysql)搜索时获得最相关的结果

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:38 24 4
gpt4 key购买 nike

我目前正在从 3 个表中搜索(整理后会搜索更多)。此查询按照查询中列出的表的顺序带来所有结果。而我想首先获得最相关的搜索结果。

(Select name, url, text, 'behandlinger_scat' AS `table` from  behandlinger_scat where name LIKE '%KEYWORD%' OR text LIKE '%KEYWORD%')
UNION
(Select name, url, text, 'hudsykdommer_scat' AS `table` from hudsykdommer_scat where name LIKE '%KEYWORD%' OR text LIKE '%KEYWORD%')
UNION
(Select name, url, text, 'om_oss' AS `table` from om_oss where name LIKE '%KEYWORD%' OR text LIKE '%KEYWORD%')

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用一种方法按您动态给出结果的点进行排序,如本例所示(您需要为您的表设置别名,以便 SQL 能够理解您指的是哪一列):

            ORDER BY 
CASE WHEN name LIKE table.keywords THEN 100 ELSE 0 END +
CASE WHEN name LIKE table2.keywords THEN 10 ELSE 0 END +
CASE WHEN text LIKE table2.keyword THEN 1 ELSE 0 END
DESC

这只是一个例子,但概念如下:
您决定每个“匹配项”将获得多少“分”(例如,名称匹配关键字是 100 分,文本匹配它 - 少一点)然后,每一行“累积”与其匹配项相关的点数,并且具有最多的行点先显示。

关于php - 从多个表(php、mysql)搜索时获得最相关的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22371376/

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