那麼我現在想用SQL和PHP做一個搜索引擎。我crrently使用以下查詢:在SQL中搜索字符串以X開頭的地方
SELECT * FROM info WHERE name LIKE '%$q%' LIMIT 10
,但我想選擇具有與$ Q,而不是cointain $ Q的那些啓動「名稱」的信息。
那麼我現在想用SQL和PHP做一個搜索引擎。我crrently使用以下查詢:在SQL中搜索字符串以X開頭的地方
SELECT * FROM info WHERE name LIKE '%$q%' LIMIT 10
,但我想選擇具有與$ Q,而不是cointain $ Q的那些啓動「名稱」的信息。
只需取下第一個通配符(%):如果你想尋找的是有多個名稱字段
SELECT * FROM info WHERE name LIKE 'X%' LIMIT 10
,你想搜索可能是在該領域的中間名,然後使用Full Text Search
(FTS)可能會更好。例如,如果OP中的name
字段指的是全名,並且可能包含"John Doe"
並且您想要搜索"Doe"
,那麼FTS可能會比使用LIKE
運算符更好(更精確和更快)。使用FTS,文本中的單詞被編入索引,因此搜索速度非常快,並且允許進行更復雜的搜索,例如能夠在不相鄰的字段中查找兩個單詞(或名稱)(在一個示例中選擇一個隨機)。
OP中沒有提及特定的數據庫供應商,但是如果支持FTS,那麼它可能是您嘗試的一個不錯的選擇。一些FTS information for SQL Server和for MySQL很容易找到搜索。
「我想做一個搜索引擎」,這是什麼意思?這是否意味着你想執行查詢? – 2012-01-10 23:30:29