Как мне выполнить полнотекстовое индексирование по 2 колонкам MySQL? - PullRequest
0 голосов
/ 13 января 2012

У меня есть 2 столбца: first_name, last_name.Вот и все.

Когда пользователь ищет имя, я хочу, чтобы оба столбца действовали как один.(как полное имя).

Поэтому, когда кто-то ищет «Алекс Джонсон», я хочу, чтобы он запрашивал оба столбца, как если бы они были одним столбцом.

Ответы [ 3 ]

0 голосов
/ 13 января 2012

Вы можете объединить столбцы вместе для поиска по ним так, чтобы простой запрос выглядел так:

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  |
+--------+--------+

Полный расширенный полнотекстовый поиск, звучит так, будто вы хотите использовать функцию Match.

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

Подробнее см. Индексирование и поиск в MySQL FULLTEXT . * отредактировано, потому что я забыл о минимальном размере слова.

0 голосов
/ 13 января 2012

Попробуйте использовать concat в своем запросе.

like:

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

подробное описание вы найдете здесь:

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

0 голосов
/ 13 января 2012

Поможет ли что-то подобное:


ALTER TABLE your_table_name ADD FULLTEXT(first_name, last_name);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...