我需要一个 mysql 查询来进行姓名和姓氏的文本搜索...这是查询:
SELECT * FROM people WHERE CONCAT(name,' ',surname) like 'John%'
or CONCAT(name,' ',surname) like '% John%'; --mind the space in second like
这个查询应该找到“John Fox”和“Fox John”和“John Fox Joe”和“Joe John Fox”等等。这很好用,但对于大表,我认为我应该添加和索引......我对吗?我读到 btree 索引仅对like 'John%'
语法有用,对like '% John%'
. 因此,为新索引添加由 CONCAT(name,' ',surname) 组成的新列可能没有用。
我想知道这个文本搜索问题的最佳方法是什么。
PS:我使用的是 innodb 表,所以我不能使用全文索引。