关于int型数据的SQL模糊查询猜想

在用PowerBulider实现一个小软件的时候,自己对功能的实现构思走偏了,但却反而引发了我一些想法:模糊查询int型数据。

比如通过成绩(int型)这一列,查出主键,假如成绩的位数比较多(五位数或者六位数),数据库中假设有60568、56021、75560、12345、56231,用户只记得成绩中有 60 这两位数,但忘了是哪两位上的,那么输入60,查询结果应为:60568、56021、75560。如何实现呢?

网上的取模的思路不错

oracle、db2:

 

1

select * fromtab where mod(col,10)=1

sqlserver、mysql

 

1

select * fromtab where col%10=1

 

但由于取模,只能支持数据尾部的模糊匹配。

我仔细想了想取模既然能支持数据尾部的模糊匹配,那么为什么不将数据反复除10再取模以匹配查询值呢,这么一来,多位数据中各位都可以成为尾部,继而可以进行全位了。只是运算时间有点长…

尝试用其他方法,但是问题在于,数据本身为int型,那么模糊匹配int型数据的方法一定得从数值的运算去找,想来想去也就只有取模了。当然,本人数学水平不高,若是有其他数值运算的方法能将高位变为低位,请多指教。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值