zoukankan      html  css  js  c++  java
  • 关于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型数据的方法一定得从数值的运算去找,想来想去也就只有取模了。当然,本人数学水平不高,若是有其他数值运算的方法能将高位变为低位,请多指教。

  • 相关阅读:
    vb.net的数据类型
    PHP常用函数
    399. Evaluate Division
    329. Longest Increasing Path in a Matrix
    415. Add Strings
    463 Island Perimeter
    400. Nth Digit
    401. Binary Watch
    391. Perfect Rectangle
    406. Queue Reconstruction by Height
  • 原文地址:https://www.cnblogs.com/Sherlock-J/p/12926026.html
Copyright © 2011-2022 走看看