如何在2个MySQL列上进行全文索引?

时间:2012-01-13 07:41:30

标签: mysql database indexing

我有2列:first_name,last_name。就是这样。

当用户搜索名称时,我希望两列都作为一个列。 (作为全名)。

因此,当有人搜索“Alex Johnson”时,我希望它可以查询两列,就好像它们是一列一样。

3 个答案:

答案 0 :(得分:0)

这样的事情会有所帮助:


ALTER TABLE your_table_name ADD FULLTEXT(first_name, last_name);

答案 1 :(得分:0)

您可以将列连接在一起以搜索它们,以便简单查询看起来像这样:

create temporary table test(n1 varchar(10), n2 varchar(10));
insert into test values('tommy','bobby');

select * from test where n1+n2='tommybobby';

+--------+--------+
| n1     | n2     |
+--------+--------+
| tommy  | bobby  |
+--------+--------+

完全更高级的全文搜索听起来像是要使用匹配功能。

SELECT n1, n2 FROM test
WHERE MATCH (n1,n2)
AGAINST ('+tommy +bobby' IN BOOLEAN MODE);

有关详细信息,请参阅MySQL FULLTEXT Indexing and Searching。 *编辑,因为我忘记了最小字数。

答案 2 :(得分:0)

尝试在查询中使用concat。

像:

select conact(first_name, last_name) as fullname from ...

您可以在此处找到详细说明:

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat