我目前正在进行实时搜索,遇到了以下问题:
下面的查询可以工作,但我更愿意从表“bb1_threads”中收集“topic”和“threadid”列,而从表“bb1_posts”中只收集“message”列
SELECT posttopic AS topic, threadid FROM bb".$n."_posts WHERE message LIKE '%$search_string%' OR posttopic LIKE '%$search_string%' LIMIT 1
下面的查询也可以工作,但是我不能用这种方法从表bb1_posts中搜索字段“message”:
SELECT topic, threadid FROM bb".$n."_threads WHERE topic LIKE '%$search_string%' LIMIT 1
因此,我想拥有并尝试构建几个小时的查询是:
- 从表“bb1_threads”中选择字段“threadid”和“topic”
- 在表“bb1_threads”中搜索字段“主题”
- 在表格“bb1_posts”中搜索字段“消息”
- 按最佳匹配对结果进行排序。(如果搜索结果更接近列“message”中的字符串,则不使用该字符串,否则应使用“topic”中的搜索结果)
如果有人能发布一个现成的查询,我将非常感激!圣诞快乐:)
1条答案
按热度按时间rekjcdws1#
这可能行得通。
1.按
message
搜索bb1_posts
,并将1
指定为search_rank
1.按
topic
搜索bb1_thread
,并将2
指定为search_rank
1.求两者的并集结果,按
search_rank
排序并选取第一行