用于搜索最长公共前缀的 SQL 查询
Posted
技术标签:
【中文标题】用于搜索最长公共前缀的 SQL 查询【英文标题】:SQL query to search for longest common prefixes 【发布时间】:2012-11-02 17:25:48 【问题描述】:在我的数据库中,我有一个表 PRODUCT,其中包含一个 VARCHAR(255) 列 PRODNAME。在该列中,我存储了我所有的产品名称。
现在我必须实现一个简单的搜索引擎来查看该列。我想使用 LIKE 语句作为精确匹配 == 对字符串的限制太严格,但我只想匹配 PRODNAME 列文本内的前缀。怎么做?谢谢!
【问题讨论】:
告诉我们what you have tried。 VARCHAR(255) 当然。感谢您指出错字 【参考方案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 "*以上是关于用于搜索最长公共前缀的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章