【问题标题】:SQL query to search for longest common prefixes用于搜索最长公共前缀的 SQL 查询
【发布时间】:2012-11-02 17:25:48
【问题描述】:

在我的数据库中,我有一个表 PRODUCT,其中包含一个 VARCHAR(255) 列 PRODNAME。在该列中,我存储了我所有的产品名称。


现在我必须实现一个简单的搜索引擎来查看该列。我想使用 LIKE 语句作为精确匹配 == 对字符串的限制太严格,但我只想匹配 PRODNAME 列文本内的前缀。怎么做?谢谢!

【问题讨论】:

标签: mysql search prefix


【解决方案1】:

您可以使用通配符(百分号),即。

SELECT * FROM PRODUCT WHERE PRODNAME LIKE 'prefix%'

要搜索所有子字符串,请使用:

SELECT * FROM PRODUCT WHERE PRODNAME LIKE '%substring%'

或后缀:

SELECT * FROM PRODUCT WHERE PRODNAME LIKE '%suffix'

【讨论】:

  • 没关系,但是在搜索自然语言文本的前缀时呢? LIKE 操作数是否适用于空格字符?
  • 是的,只要在空格后添加通配符即可。为什么不试试看会发生什么?
  • 这里我的查询:从产品中选择 * where prodname LIKE "*%" OR prodname LIKE "*%" ... where , 等。是根据用户在搜索中输入的实际字符串计算的文本标记
  • 不确定为什么要在标记之前添加星号,但是可以,您可以将用户输入作为变量并使用它来构建查询。
猜你喜欢
  • 2018-09-30
  • 2020-02-10
  • 2013-01-25
  • 2021-09-11
  • 1970-01-01
  • 2022-11-22
  • 2020-12-14
  • 2020-07-05
  • 2017-08-06
相关资源
最近更新 更多