我有四个结构相同的表(id、var1、var2)
var1中的表1只有一个单词(150000+条记录)
var1中的表2有两个词(50000+条记录)
var1 中的表 3 有 3 个单词(50000+ 条记录)
var1 中的表 4 有四个或更多单词(30000+ 条记录)
搜索它们的最佳方法是什么?
我搜索如下:
SELECT * FROM (
(SELECT * FROM table1 WHERE var1 LIKE '".$searchWord."' ORDER BY var1)
UNION
(SELECT * FROM table2 WHERE var1 LIKE '".$searchWord." %' OR var1 LIKE '% ".$searchWord." %' OR var1 LIKE '% ".$searchWord."' ORDER BY var1)
UNION
(SELECT * FROM table3 WHERE var1 LIKE '".$searchWord." %' OR var1 LIKE '% ".$searchWord." %' OR var1 LIKE '% ".$searchWord."' ORDER BY var1)
UNION
(SELECT * FROM table4 WHERE var1 LIKE '".$searchWord." %' OR var1 LIKE '% ".$searchWord." %' OR var1 LIKE '% ".$searchWord."' ORDER BY var1)
) AS WHOLEDATABASE ORDER BY var1
");
我这样做是因为首先我想用一个词显示结果,然后是两个词,然后是三个词,然后是其他词。
有没有其他方法可以做到这一点,因为这种方式非常慢。