我目前正在进行实时搜索,遇到了以下问题:

下面的查询可以用,但我宁愿从表"BB1_THREADS"中收集"TABLE"和"ThreDID"列,从表"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

因此,我想要并try 了数小时构建的是一个查询:

  • 从表"BB1_THREADS"中 Select 字段"ThriaDid"和"Theme"
  • 在表"BB1_THREADS"中搜索字段"TOPIC"
  • 在表"BB1_POSTS"中搜索字段"Message"
  • 按最佳匹配对结果进行排序.(如果搜索结果更接近消息列中的字符串,而不是使用该字符串,则应使用主题中的搜索结果)

如果有人能发布一个即用即用的查询,我会非常感激! 圣诞快乐:)

推荐答案

这可能会奏效.

  1. message搜索bb1_posts,并将1指定为search_rank

  2. topic搜索bb1_thread,并将2指定为search_rank

  3. 两个数据的联合结果,按search_rank排序并 Select 第一行

select threadid  as threadid,
       posttopic as topic,
       1         as search_rank
  from bb1_posts
 where message like '%$search_string%'
 union all
select threadid  as threadid,
       topic     as topic,
       2         as search_rank
  from bb1_threads
 where topic like '%$search_string%'
 order by search_rank
 limit 1;

Php相关问答推荐

make dd()如何正确工作?¨

如何使用这种格式构建XML?

通过访问单个产品页面更新WooCommerce产品元数据

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

在冲突和几何上插入的Postgres参数化查询在PHP中不起作用

如何确保所有语言文件都使用Laravel中的新密钥进行更新?

根据WooCommerce Cart小计阈值自动应用优惠券

如何在laravel中添加延迟?

Select 本地提货时隐藏WooCommerce显示的发货成本

防止同时从Laravel中的用户帐户中提取

如何解决 Laravel 外键错误?

以编程方式同步 WPML 翻译更改 Woocommerce 产品销售价格

打折时更改 Woocommerce 产品名称

添加产品标签以通过 WooCommerce 邮箱通知订购商品

WooCommerce – 在新订单邮箱通知中显示产品分类计数

将Shopware 6后端中定义的值导入MultiFilter

如何故意创建不同的错误(404,500,419)? Lavravel PHP

在帖子内容中使用短代码触发 Woocommerce 挂钩

将 HTML 表单链接到 SQLite 数据库

从 laravel 中的日期类型中删除时间