2016-03-29 101 views
1

我將創建一個搜索字段,其中用戶輸入他/她正在查找的項目。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%允許helm位於字符串中的任何位置 – SGR

+0

然後您可以明確地添加它。它會讓你的答案更清晰:) –

1

可以使用SQL通配符來處理這個用例

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

如果封裝用%的搜索詞兩邊的SQL將返回包含在任何索引位置搜索詞的任何行,但是如果您只需要以helm開頭的返回行,那麼您將使用術語

'helm%'