按前缀在 DB 表中搜索字符串

Posted

技术标签:

【中文标题】按前缀在 DB 表中搜索字符串【英文标题】:Search string in DB Table by its prefix 【发布时间】:2013-10-03 02:17:59 【问题描述】:

我有一个电话号码数据库。 有2张桌子;电话前缀和订阅。

TEL_PREFIX 有 PREFIX 列,SUBSCRIBER 有 NUMBER 列。

SUBSCRIBER 和 TEL_PREFIX 之间的关系是多对一的(TEL_PREFIX 有多个 SUBSCRIBER)。

将 PREFIX 与 NUMBER 连接会生成用户的真实电话号码。

示例: PREFIX=011442NUMBER=3452这两条记录之间的关系,会生成实数0114423452

我的问题:

我有完整的数字作为输入(例如:0114443452),并且 SUBSCRIBER 表中没有编号为 3452 的记录,我想获取 PREFIX 记录这个处理该数字。

P.S:前缀长度不固定。

【问题讨论】:

【参考方案1】:

我终于找到了答案。 我用LOCATE 我的查询将是:

select * from tel_prefix
where locate(tel_prefix.prefix, phone) > 0

phone 是我的输入。

你有没有使用过LOCATE的cmets。

【讨论】:

以上是关于按前缀在 DB 表中搜索字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySQL 表中搜索前缀?

使用二进制搜索的 Java 前缀搜索

T-SQL 语句中的前缀 N 是啥意思,啥时候应该使用它?

如何按前缀对字符串进行分组

mysql索引

最长前缀匹配(LPM)