首页 > 解决方案 > 如何仅使用 mySQL 数据库找到与给定字符串最匹配的记录?

问题描述

我很难弄清楚这一点,所以我来这里寻求帮助。

我有一个表x_25_operators,其中有一个名为mask的字段。掩码是长度在 7-11 位之间的数字。我在这里想要实现的是在这个特定的表中找到我的查询的最佳匹配。

鉴于场景:

x_25_operators

| some_other_data | mask
         .          486737
         .          616724
         .          915776

我有一个号码:48915776148(这个号码是定长的,总是11位数字)

我正在寻找一个查询,该查询将返回包含掩码915776 的行(或所有适合此搜索数字的行,因为过滤最佳匹配一应该是小菜一碟)。

我正在考虑使用LIKE作为过滤器,但是这样的查询:

SELECT * FROM x_25_operators WHERE mask LIKE '48915776148'

返回一个空查询(这应该很明显)。

我正在使用 mySQL 数据库。

任何想法如何解决这个问题?我愿意接受任何建议。

标签: mysql

解决方案


您可以使用LOCATE()

SELECT * FROM x_25_operators WHERE LOCATE(mask , "48915776148")

这是更多信息:https ://www.w3resource.com/mysql/string-functions/mysql-locate-function.php


推荐阅读