如何从数据库中查找指定字符串最长匹配的记录?

UPnP 2019-04-11 12:05:41
比如我想在数据库某字段中查找 ABCDEFG
数据库中该字段有 ABQWJKH ABCYUUI ABCDHJJHK ABCDERT
那么我期望的结果是ABCDERT这条记录
即我想从数据库中得到某字段从头开始和我给定字符串相同字符最多的记录
请问有啥好的解决思路?

PS.萌新,有啥叙述不周的地方望各位大佬轻喷
...全文
303 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
awitingzz 2019-04-19
  • 打赏
  • 举报
回复
SELECT MAX(LENGTH(temp.USER_NAME)),temp.* from user_table temp;
dalianzsl 2019-04-13
  • 打赏
  • 举报
回复
描述中的『某字段从头开始和我给定字符串相同字符最多的记录』,有点不确定。如果是以ABCDEFG进行查询,结果一定是以A开头的记录,可以用下面的方式处理

1. 初始化当前查询参数(ABCDEFG)
2. 按参数进行匹配查询,如果存在记录,返回记录,否则转到步骤3
3. 如果当前查询参数为空,返回空;否则,右侧减少一个字符(ABCDEF),转到步骤2

但是这种处理方式没有针对性,数据库操作可能会很多,影响效率。再者,假设数据库中以A开头的记录特别多,查询正好命中了这一情形,都查出来吗?所以要找到适合的处理方式,需要结合你的业务需求和数据库相关情况,最好找同事或者领导讨论一下。
十八道胡同 2019-04-11
  • 打赏
  • 举报
回复
全部拿出来 在内存里面比较?
931828653 2019-04-11
  • 打赏
  • 举报
回复
先用模糊查询 相邻的两个字母的 数据, 就比如 like '%AB%' or 字段 like '%BC%' 等 然后 在比较 比较麻烦

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧