2016-03-29 23 views
1

Im検索フィールドを作成します。ここで、ユーザーは探している項目を入力します。MySQLの部分一致検索アルゴリズム

この例ではhelmと言うことができます。

データベースは次のように、アイテムを保持:

id | name | 
1 | helm of c 
2 | helm of 9 
3 | helm 
4 | helmset 
5 | helmapo 
6 | haloween 

は、どのように私は、そのすべての試合を引き起こし、この場合の戻り行1-5でmysqlのクエリを行うことができますか?

答えて

1

あなたはこのようなワイルドカード検索を作ってみることができます。

select * from tablename where name like 'helm%' 

また、あなたは言葉helmが、その後

select * from tablename where name like '%helm%' 
2

ようにそれを入れて、列値または任意の場所の真ん中に現れることができるかどうかワイルドカードを使用することができます

SELECT * FROM table WHERE name LIKE '%helm%' 

ワイルドカードの詳細:http://www.w3schools.com/sql/sql_wildcards.asp

+0

@rahultripathuを使用することになり、その後指揮で始まる行を返したいです。 %helm%は、helmが文字列の任意の位置にあることを許可します。 – SGR

+0

次に、それを明示的に追加できます。それはあなたの答えをより明確になります:) –

1

あなたが両側%と検索用語をカプセル化した場合、SQLはただした場合、任意のインデックス位置にある検索語を含むすべての行を返します

SELECT row FROM tablename WHERE field LIKE '%helm%' 

このユースケースを処理するために、SQLワイルドカードを使用することができますあなただけのユーザーは、ユーザーが唯一の実権を握っで始まる単語/文字列を探しているだろうと指定されていませんでしたので、あなたが長期に

'helm%' 
関連する問題