vlambda博客
学习文章列表

mysql 怎么用SQL语句将老身份证号15位补位到新身份证号18位



2、执行sql语句,身份证号补位(老身份证号15位补位到新身份证号18位)

UPDATE person_catalog_info_s SET ID_CARD = CONCAT ( SUBSTRING(ID_CARD,1,6),'19',SUBSTRING(ID_CARD,7,9),SUBSTRING('10X98765432', (CAST(SUBSTRING(ID_CARD,1,1)AS SIGNED)*7+ CAST(SUBSTRING(ID_CARD,2,1)AS SIGNED)*9+ CAST(SUBSTRING(ID_CARD,3,1)AS SIGNED)*10+ CAST(SUBSTRING(ID_CARD,4,1)AS SIGNED)*5+ CAST(SUBSTRING(ID_CARD,5,1)AS SIGNED)*8+ CAST(SUBSTRING(ID_CARD,6,1)AS SIGNED)*4+ 1*2+ 9*1+ CAST(SUBSTRING(ID_CARD,7,1)AS SIGNED)*6+ CAST(SUBSTRING(ID_CARD,8,1)AS SIGNED)*3+ CAST(SUBSTRING(ID_CARD,9,1)AS SIGNED)*7+ CAST(SUBSTRING(ID_CARD,10,1)AS SIGNED)*9+ CAST(SUBSTRING(ID_CARD,11,1)AS SIGNED)*10+ CAST(SUBSTRING(ID_CARD,12,1)AS SIGNED)*5+ CAST(SUBSTRING(ID_CARD,13,1)AS SIGNED)*8+ CAST(SUBSTRING(ID_CARD,14,1)AS SIGNED)*4+ CAST(SUBSTRING(ID_CARD,15,1)AS SIGNED)*2)%11+1,1)) WHERE LENGTH(ID_CARD)=15;

3、执行后结果。


希望能帮助到大家,小编以后会一直坚持更新内容,工作中遇到的问题和心得都会在这里分享,也是我的笔记,欢迎大家点赞、收藏、关注、分享。如果大佬们资金充裕,也可以稍微的打赏一下,感谢你的支持。