0

我需要一个 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 表,所以我不能使用全文索引。

4

1 回答 1

0

也许您应该升级到FULLTEXTInnoDB 支持的 mysql 5.6。

http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html

于 2014-09-12T08:18:54.947 回答