我的桌子上有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
答案 0 :(得分:1)
只是一些观察:
OR
,所以您的查询将始终执行like %the%
子句,例如,它始终包含并提供比最大限制条款更广泛的结果。我认为你不想要的东西。我认为最好的解决方案是在您的技术堆栈中添加像sphinx这样的全文搜索组件,因为它可以根据复杂的算法进行这类搜索并返回加权结果。