2012-01-10 111 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很容易找到搜索。

相关问题