【问题标题】:Search in SQL where string starts with X在 SQL 中搜索字符串以 X 开头的位置
【发布时间】:2012-02-07 09:13:31
【问题描述】:

我目前想用 SQL 和 PHP 做一个搜索引擎。我经常使用以下查询:

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

但我想选择以 $q 开头的 'name' 信息,而不是包含 $q 的信息。

【问题讨论】:

  • “我想做一个搜索引擎”,这是什么意思?这是否意味着您要执行查询?

标签: php sql


【解决方案1】:

如果您要搜索具有多个名称的字段,并且要搜索可能位于字段中间的名称,那么使用Full Text Search (FTS) 可能会更好。例如,如果 OP 中的 name 字段指的是全名并且可能包含 "John Doe",并且您想搜索 "Doe",那么 FTS 可能会比使用LIKE 运营商。使用 FTS,文本中的单个单词被索引,因此搜索速度非常快,而且它允许更复杂的搜索,例如在不相邻的字段中查找两个单词(或名称)的能力(举一个例子随机)。

OP 中没有提到特定的数据库供应商,但如果支持 FTS,那么它可能是您尝试的一个不错的选择。一些 FTS information for SQL Serverfor MySQL 很容易通过搜索找到。

【讨论】:

    【解决方案2】:

    只需删除第一个通配符 (%):

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

    【讨论】:

      猜你喜欢
      • 2017-01-08
      • 2021-10-19
      • 2022-11-01
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2020-05-05
      • 1970-01-01
      相关资源
      最近更新 更多