gpt4 book ai didi

mysql - 在具有多个表的 sql 中搜索的最佳方法是什么?

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

我的表上有 3 个表,我想从以空格分隔的短语中搜索它们

示例:快速棕色。

首先它会搜索短语“The quick brown”,然后是“The”、“quick”、“brown”

我的方法是合并所有表然后搜索。

SELECT body FROM
(SELECT body FROM table1
UNION ALL
SELECT body FROM table2)
) AS row WHERE body LIKE '%The quick brown%' OR body LIKE '%The%' OR body LIKE '%quick%' OR body LIKE '%brown%'

提高速度的最佳方法是什么?

顺便说一句,我正在使用 MySQL

最佳答案

只是一些观察:

  • 因为您的子句之间有 OR,您的查询将始终执行 like %the% 子句,它始终包含并为您提供比你最具限制性的条款。我认为你不想要的东西。
  • 因为您有以 % 开头的子句,所以可以保证在那里进行全表扫描,即使您在那里没有那些全表联合。

我认为最好的解决方案是将全文搜索组件(如 sphinx)添加到您的技术栈中,因为它可以执行此类搜索并返回基于复杂算法的加权结果。

关于mysql - 在具有多个表的 sql 中搜索的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12906704/

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