yjywudi 2023-03-15 17:36 采纳率: 66.7%
浏览 57
已结题

在mysql中判断身份证号是否符合规范

请教下在mysql中判断身份证号是否符合规范,并输出不符合规范的行,应该怎么写?如同在EXCEL中的判断公式:

img

类似这个效果,请指导

  • 写回答

4条回答 默认 最新

  • CL有毒 2023-03-15 18:53
    关注
    -- 建表
    CREATE TABLE `test_id` ( `id` VARCHAR ( 18 ) NOT NULL, PRIMARY KEY ( `id` ) ); 
    -- 初始化数据
    INSERT INTO `test_id` VALUES ( '123456789123456789' ),( '432831196411150810' );
    -- 检查是否通过
    SELECT
        id,
        check_sum,
    IF
        ( MID( id, 18, 1 )= check_sum, '通过', '不通过' ) result 
    FROM
        (
        SELECT
            id,
        CASE
                mod_sum 
                WHEN 0 THEN
                '1' 
                WHEN 1 THEN
                '0' 
                WHEN 2 THEN
                'X' ELSE 12-mod_sum 
            END check_sum 
    FROM
        (
        SELECT
            id,
            MOD (
                MID( id, 1, 1 )* 7 + MID( id, 2, 1 )* 9 + MID( id, 3, 1 )* 10 + MID( id, 4, 1 )* 5 + MID( id, 5, 1 )* 8 + MID( id, 6, 1 )* 4 + MID( id, 7, 1 )* 2 + MID( id, 8, 1 )* 1 + MID( id, 9, 1 )* 6 + MID( id, 10, 1 )* 3 + MID( id, 11, 1 )* 7 + MID( id, 12, 1 )* 9 + MID( id, 13, 1 )* 10 + MID( id, 14, 1 )* 5 + MID( id, 15, 1 )* 8 + MID( id, 16, 1 )* 4 + MID( id, 17, 1 )* 2,
                11 
            ) AS mod_sum 
        FROM
            test_id 
        ) temp 
        ) t;
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月24日
  • 已采纳回答 3月16日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀