私は2つの列:first_name、last_nameを持っています。それでおしまい。2つのMySQLカラムでフルテキストインデックスを作成するにはどうすればよいですか?
ユーザーが名前を検索すると、両方の列が1つの役割を果たすようになります。 (フルネームとして)。
誰かが「Alex Johnson」を検索すると、両方の列が1列であるかのようにクエリする必要があります。
私は2つの列:first_name、last_nameを持っています。それでおしまい。2つのMySQLカラムでフルテキストインデックスを作成するにはどうすればよいですか?
ユーザーが名前を検索すると、両方の列が1つの役割を果たすようになります。 (フルネームとして)。
誰かが「Alex Johnson」を検索すると、両方の列が1列であるかのようにクエリする必要があります。
ウィルこのヘルプのようなもの:
ALTER TABLE your_table_name ADD FULLTEXT(first_name, last_name);
あなたがそれらに単にクエリは次のようになりますよう、検索するために一緒に列をCONCATことができます。
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を参照してください。 *編集したのは、最小単語サイズを忘れてしまったためです。
クエリでconcatを使用してみます。
のような:
select conact(first_name, last_name) as fullname from ...
詳細な説明あなたはここにいます:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat