首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用通配符按bigint列查找记录

使用通配符按bigint列查找记录
EN

Stack Overflow用户
提问于 2014-12-11 01:28:15
回答 1查看 213关注 0票数 0

我有一个API,其中有一个包含UPC-12值的数据库。有时API调用会带着UPC-10代码进入。我的db列是bigint,因此它删除了UPC-12值的前导0。与UPC-10进行比较时,这会将最后一个数字保留为通配符。

我希望能够根据数据库中的记录检查UPC-10值,以查看是否存在匹配。既然我不能使用LIKE,我该怎么做呢?

我们的目标是做一些类似的事情:

代码语言:javascript
复制
def self.pull_product(upc)
    upc_string = upc.to_s

    if upc_string.length == 10
        # product = Product.where...  use a wildcard to try and match to existing record
    else
        product = Product.find_by_upc(upc)
    end
end

这是Rails 4和Postgresql。

只是想澄清一下:

我可能有一个带有upc参数的upc-10API调用,比如:7618600002。我的数据库有相当于UPC-12的:76186000023。因此,如果我只是在api调用中查询参数,我将得到nil。

我需要一种方法来将UPC-10参数与数据库中的UPC-12值进行匹配。

EN

回答 1

Stack Overflow用户

发布于 2014-12-11 04:54:00

您需要像这样使用SQL:

代码语言:javascript
复制
upc between upc_string::int*10 and upc_string::int*10+9

不过,我不知道如何在Rails中编写代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27407211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档