2012-01-10 44 views
8

那麼我現在想用SQL和PHP做一個搜索引擎。我crrently使用以下查詢:在SQL中搜索字符串以X開頭的地方

SELECT * FROM info WHERE name LIKE '%$q%' LIMIT 10 

,但我想選擇具有與$ Q,而不是cointain $ Q的那些啓動「名稱」的信息。

+0

「我想做一個搜索引擎」,這是什麼意思?這是否意味着你想執行查詢? – 2012-01-10 23:30:29

回答

20

只需取下第一個通配符(%):如果你想尋找的是有多個名稱字段

SELECT * FROM info WHERE name LIKE 'X%' LIMIT 10 
0

,你想搜索可能是在該領域的中間名,然後使用Full Text Search(FTS)可能會更好。例如,如果OP中的name字段指的是全名,並且可能包含"John Doe"並且您想要搜索"Doe",那麼FTS可能會比使用LIKE運算符更好(更精確和更快)。使用FTS,文本中的單詞被編入索引,因此搜索速度非常快,並且允許進行更復雜的搜索,例如能夠在不相鄰的字段中查找兩個單詞(或名稱)(在一個示例中選擇一個隨機)。

OP中沒有提及特定的數據庫供應商,但是如果支持FTS,那麼它可能是您嘗試的一個不錯的選擇。一些FTS information for SQL Serverfor MySQL很容易找到搜索。

相關問題