那么我现在想用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