千家信息网

卡bin查询sql分享

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,卡bin:卡号的前6位数字代表发卡行标识代码,也叫BIN号,不同的BIN号代表了不同的银行卡组织和卡片级别。最近更新了系统的卡bin表数据(bank_card_bin),发现卡bin长度并不是前述的6
千家信息网最后更新 2026年11月01日卡bin查询sql分享

卡bin:卡号的前6位数字代表发卡行标识代码,也叫BIN号,不同的BIN号代表了不同的银行卡组织和卡片级别。


最近更新了系统的卡bin表数据(bank_card_bin),发现卡bin长度并不是前述的6位数字,卡bin长度为8位(有些6位、有些7位,非定长),如下表,


支行行名称卡名卡类型卡bin卡bin长度长度组织码
乌拉特中旗蒙银村镇银行乌拉特中旗蒙银村镇银行蒙银借记卡借记卡6213460781915142075
磴口蒙银村镇银行磴口蒙银村镇银行蒙银借记卡借记卡6213462681915142073
鄂托克前旗蒙银村镇银行鄂托克前旗蒙银村镇银行蒙银借记卡借记卡6213462481915142054
鄂尔多斯市铁西蒙银村镇银行鄂尔多斯市铁西蒙银村镇银行蒙银借记卡借记卡6213461181915142051
四子王蒙银村镇银行四子王蒙银村镇银行蒙银借记卡借记卡6213461381915142046


那么如何根据银行卡号查询具体的卡信息呢?

最开始的想法是截图卡号前6位,并限制卡长度进行查询,若返回结果不是只有一条则继续截取前7位进行查询,直到只有一条返回结果。若有2条及以上结果时,继续查询却有0条记录,则认为未收录该卡bin数据。即递归查询。假设卡号为6213462465616156,参考sql如下

select * from bank_card_binwhere  '6213462465616156'  like '621346%' and  长度 = '19'


但是,这太麻烦了,怎么可能呢?在同事沟通确认,可以做些变更,如下

select * from bank_card_binwhere '6213462465616156' like concat(卡bin,'%') and  长度 = '19'

巧妙地将前一个sql拆成了两段,且卡bin不是由用户自己判断截取的,是做匹配。

同时,此sql利用了"卡bin是唯一"的特性,不存在包含关系,即不存在以下的记录,

***银行**银行蒙银借记卡借记卡6213466191514204


银行 借记卡 村镇 长度 查询 卡号 结果 不同 代表 只有 数字 数据 的卡 王蒙 磴口 乌拉 乌拉特中旗 鄂尔多斯市 鄂托 鄂托克前旗 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 互联网科技活动banner 深圳恒合互联网络科技有限公司 安徽鑫晟辉互联网科技 汇久创客互联网科技 易通互联网络科技有限公司 互联网科技公司有哪些 四个字互联网科技公司取名 中化能源互联网科技招聘 互联网和黑科技的看法 广州市恰铎互联网科技有限公司 广西互联网科技孵化中心 互联网科技如何创业 互联网科技实习生岗位 梅州GM互联网络科技有限公司 陕西云淼互联网科技公司 吉林省码上互联网科技电话 科技和互联网行业的特点 安徽零酒互联网科技有限公司 利用互联网等科技手段 互联网金融 科技 天津摩尔互联网科技 哈尔滨新华互联网科技 成都互联网科技公司100强 互联网时代科技改变生活 长沙互联网科技 浙南科技城互联网大厦招聘 银川新华互联网科技学校招聘 伍佰万互联网科技是干嘛的 中国主要互联网科技公司
0