mysql - 如何仅使用 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 数据库。
任何想法如何解决这个问题?我愿意接受任何建议。
解决方案
您可以使用LOCATE()
SELECT * FROM x_25_operators WHERE LOCATE(mask , "48915776148")
这是更多信息:https ://www.w3resource.com/mysql/string-functions/mysql-locate-function.php
推荐阅读
- python - ValueError: int() 以 10 为底的无效文字:'pixel'
- azure - 用户关闭并重新打开浏览器后,用户需要重新使用 Azure AD B2C 进行身份验证
- angular - HTML 不从获取请求中呈现数据
- c - C中的指针减法与数组
- python - 查找两列之间的经过时间
- javascript - ReactJS 随机映射一个数组
- java - 如何让这个java程序打印出来?
- javascript - 将 Json 转换为 Csv 问题
- macos - 如何在 M1 Macbook 上的 Rosetta 2 下运行 Homebrew 安装程序
- laravel - 将值返回到同一个 livewire 组件?