MySQLは身分証明書に基づいて省の年齢性別を取得します

1383 ワード

MYSQLは身分証明書に基づいて省の年齢性別を取得する
  • SQL文
  • 身分証明書に基づいて年齢を取得し、6歳以上のsql
  • を取得する
    SQL文
    `select case left(id_card,2)when‘11’then‘北京市’when‘12’then‘天津市’when‘13’then‘河北省’when‘14’then‘山西省’when‘15’then‘内蒙古自治区’when‘21’then‘遼寧省’when‘22’then‘吉林省’when‘23’then‘黒竜江省’when‘31’then‘上海市’when‘32’then「江蘇省」when「33」then「浙江省」when「34」then「安徽省」when「35」then「福建省」when「36」then「江西省」when「37」then「山東省」when「41」then「河南省」when「42」then「湖北省」when「43」then「湖南省」when「44」then「広東省」when「45」then「広西チワン族自治区」when「46」then「海南省」when「50」then「重慶市」when「51」then「四川省」when「52」then「貴州省」when「53」then「雲南省」when「54」then「チベット自治区」when「61」then「陝西省」when「62」then「甘粛省」when「63」then「青海省」「64」then「寧夏回族自治区」when「65」then「新疆ウイグル自治区」when「71」then「台湾省」when「81」then「香港特別行政区」when「82」then「マカオ特別行政区」else「未知」end as省、
    year(curdate()−if(length(id_card)=18,substring(id_card,7,4),if(length(id_card)=15,concat(‘19’,substring(id_card,7,2))as年齢,
    case if(length(id_card)=18,cast(substring(id_card,17,1)as UNSIGNED)%2,if(length(id_card)=15,cast(substring(id_card,15,1)as UNSIGNED)%2,3))when 1 then‘男性’when 0 then‘女性’else‘未知’endas性別
    FROM user
    身分証明書に基づいて年齢を取得し、6歳以上のsqlを取得する
    SELECT
    	* 
    FROM
    USER 
    WHERE
    	YEAR ( curdate( ) ) -
    IF
    	(
    		length( a.id_card ) = 18,
    		substring( a.id_card, 7, 4 ),
    	IF
    		(
    			length( a.id_card ) = 15,
    			concat( '19', substring( a.id_card, 7, 2 ) ),
    		NULL 
    		) 
    	) >6