请问这种查询算法怎么实现?
数据库有个表叫MyTable, 里面有一列叫Mobile, 存储11位的手机号码。
现在MyTable里面存储了一批手机号码。
问题:举个例子,假如我输入3549,即将数据拆分成 3、5、4、9. 我如何能从MyTable中匹配包含3,5,4,9的手机号码(顺序不限,比如3,4,5,9或3,9,4,5等都一样)?
匹配结果类似:159
348
52
491
------解决方案--------------------应该是按匹配度排序
1、看看每个数字是不是都在字段内,个数为n(0-4)
2、看看数字的顺序符合情况,个数为(0-4)
3、看看第一个符合要求的数字的位置。
然后综上所述写个匹配度排序。
------解决方案--------------------可不可以根據輸入的值來組SQL如:
mobile like '%3%' and mobile like '%4%' and mobile like '%5%' and mobile like '%9%'
------解决方案--------------------先把你的字符串拆分成一个一个的,然后再去查询,where后的条件可以按照楼上的写法
------解决方案--------------------顺序是否限制,重复是否要求
如果我输入2344
那么
15925673491 不该出来
15925643401 该出来
15956434201 也该出来?
可以先把每个号码按数字生成到1个从表b(fno号码,f9数字,fc次数):
每个不同的数字一条记录,同时填它的出现次数
然后。。。。。。。
------解决方案--------------------