mysql驗證身份證號正確_通過SQL校驗身份證號碼是否正確

根據提供的身份證號碼信息驗證身份證號碼是否符合二代身份證規范,其中區域編碼網上可下載。

使用數據庫為DB2,但目測可以通用身份證號碼第18位驗證算法從網上查得,具體驗證算法如下:

1、將前面的身份證號碼17位數分別乘以不同的系數。第i位對應的數為[2^(18-i)]mod11。從第一位到第十七位的系數分別為:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;

2、將這17位數字和系數相乘的結果相加;

3、用加出來和除以11,看余數是多少?;

4、余數只可能有0 1 2 3 4 5 6 7 8 9 10這11個數字。其分別對應的最后一位身份證的號碼為1 0 X 9 8 7 6 5 4 3 2;

相關mysql視頻教程推薦:《mysql教程》

select

/*pspt_id為用戶身份證號碼*/

a.pspt_id

/*判斷用戶身份證是否符合規則*/

,case

/*判斷身份證號碼是否為18位*/

when length(a.pspt_id)<>'18' then '身份證號碼位數不對'

/*判斷身份證號碼前17位是否含除數字外的字符*/

when translate(substr(a.pspt_id,1,17),'','0123456789') <>'' then '身份證號碼前17位格式不正確'

/*判斷身份證的年份是否在合理范圍內*/

when substr(a.pspt_id,7,4) not between '1900' and '2014' then '身份證年份錯誤'

/*判斷身份證的月份是否在合理范圍內*/

when substr(a.pspt_id,11,2) not between '01' and '12' then '身份證月份錯誤'

/*判斷身份證日期是否在合理范圍內*/

when substr(a.pspt_id,13,2) not between 1 and day(to_date(char(substr(a.pspt_id,7,4)||'-'||substr(a.pspt_id,11,2)||'-01',10),'yyyy-mm-dd')+1 month-1 day) then '身份證日期錯誤'

/*判斷身份證號碼的第18位是否符合驗證規則*/

when

mod((

substr(a.pspt_id,1,1)*7+

substr(a.pspt_id,2,1)*9+

substr(a.pspt_id,3,1)*10+

substr(a.pspt_id,4,1)*5+

substr(a.pspt_id,5,1)*8+

substr(a.pspt_id,6,1)*4+

substr(a.pspt_id,7,1)*2+

substr(a.pspt_id,8,1)*1+

substr(a.pspt_id,9,1)*6+

substr(a.pspt_id,10,1)*3+

substr(a.pspt_id,11,1)*7+

substr(a.pspt_id,12,1)*9+

substr(a.pspt_id,13,1)*10+

substr(a.pspt_id,14,1)*5+

substr(a.pspt_id,15,1)*8+

substr(a.pspt_id,16,1)*4+

substr(a.pspt_id,17,1)*2

),11)

<>

(

case

when substr(a.pspt_id,18,1)='1' then '0'

when substr(a.pspt_id,18,1)='0' then '1'

when substr(a.pspt_id,18,1) in ('X','x') then '2'

when substr(a.pspt_id,18,1)='9' then '3'

when substr(a.pspt_id,18,1)='8' then '4'

when substr(a.pspt_id,18,1)='7' then '5'

when substr(a.pspt_id,18,1)='6' then '6'

when substr(a.pspt_id,18,1)='5' then '7'

when substr(a.pspt_id,18,1)='4' then '8'

when substr(a.pspt_id,18,1)='3' then '9'

when substr(a.pspt_id,18,1)='2' then '10'

end

)

then '身份證驗證錯誤'

/*判斷身份證號碼的區域編碼是否符合規則*/

when b.county_sar_code is null then '區縣編碼校驗錯誤'

else '有效實名制客戶'

end

/*用戶信息表,包含所需要查詢的身份證號碼信息*/

from usr_info a

/*身份證的行政區域編碼表,從統計局官網和網上可以下載,設定county_sar_code為6位行政編碼*/

left join csounty_sar b

on substr(a.pspt_id,1,6)=b.county_sar_code

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542775.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542775.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542775.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python學習記錄

python學習記錄schedule庫schedule庫 import schedule import time #引入schedule和timedef job():print("Working in progress...") #定義一個叫job的函數&#xff0c;函數的功能是打印Im working...#部署情況 schedule.every(10).minutes.do(job) #部署每10…

Python | 在屬性的幫助下實現setter和getter

In this program, we are implementing Properties. Python offers a better way to implement setters and getter with the help of properties by using attribute property. By default properties are getters so we have to declare setter part explicitly. 在此程序中&…

windows進入mysql

cd \wamp\bin\mysql\mysql5.6.17\bin\mysql -hlocalhost -uroot -p轉載于:https://blog.51cto.com/8818968/1835449

python爬取js動態網頁_Python 爬取網頁中JavaScript動態添加的內容(一)

當我們進行網頁爬蟲時&#xff0c;我們會利用一定的規則從返回的 HTML 數據中提取出有效的信息。但是如果網頁中含有 JavaScript 代碼&#xff0c;我們必須經過渲染處理才能獲得原始數據。此時&#xff0c;如果我們仍采用常規方法從中抓取數據&#xff0c;那么我們將一無所獲。…

mac mysql 忘記密碼 卸載_MySQL忘記密碼后重置密碼(Mac )

轉&#xff1a;http://www.cnblogs.com/lihuanqing/p/5623872.html安裝好MySQL以后&#xff0c;系統給了個默認的的密碼&#xff0c;然后不小心關了&#xff0c;慘了密碼沒有了。1、關閉mysql服務器 sudo /usr/local/mysql/support-files/mysql.server stop 也可以在系統偏好里…

MATLAB學習——變量、數組

變量、數組變量賦值顯示格式數組一維數組生成數組元素提取提取單個元素抽取二維數組生成數組提取提取單個元素提取子矩陣添加字符數組空數組變量 賦值 賦值語句一般形式&#xff1a;變量 數、字符或表達式 a 1 #自定義為雙精度double x x y 1*2*3顯示格式 可以…

Nginx嚴格訪問代理HTTP資源

為什么80%的碼農都做不了架構師&#xff1f;>>> 1 嚴格訪問 訪問能基于客戶端的IP地址允許或拒絕或使用基于HTTP驗證。 為了允許或拒絕從某個地址及或所有地址的訪問&#xff0c;使用allow和deny指令&#xff1a; location / { deny 192.168.1.2; allow 192.168…

Java LinkedList公共布爾boolean offerLast(Object o)方法(帶示例)

LinkedList公共布爾布爾offerLast(Object o)方法 (LinkedList public boolean offerLast(Object o) method) This method is available in package java.util.LinkedList.offerLast(Object o). 軟件包java.util.LinkedList.offerLast(Object o)中提供了此方法。 This method is…

csv 字符串_Python實現json轉csv格式

利用Python實現json格式轉換為csv文件格式前言本文是學校的課程設計&#xff0c;這里我沒有用封裝好的json庫來實現&#xff0c;而是把讀進來的文件當一個字符串來處理&#xff0c;核心函數其實是python的eval()類型轉換函數。什么是 JSON?我們要考慮到json格式下key-value對的…

MATLAB學習——常用語句

MATLAB學習——常用語句if語句if endif elseif elseifswitch語句for語句while語句if語句 if end n input(n); if rem(n,2) 0A even endif else n input(n); #輸入空數組判斷為odd if rem(n,2) 0A even elseA odd endif elseif n input(n); if rem(n,2) 0;even els…

mysql 線性表_數據結構之線性表

概要參考《大話數據結構》&#xff0c;把常用的基本數據結構梳理一下。線性表定義線性表(List)&#xff1a;零個或多個數據元素的有限序列。若將線性表記為 \((a_1, \cdots, a_{i-1}, a_i, a_{i1}, \cdots, a_n)\)&#xff0c;則表中 \(a_{i-1}\) 領先于 \(a_i\)&#xff0c;\(…

使用JavaScript修改瀏覽器URL地址欄的實現代碼

現在的瀏覽器里,有一個十分有趣的功能&#xff0c;你可以在不刷新頁面的情況下修改瀏覽器URL;在瀏覽過程中.你可以將瀏覽歷史儲存起來&#xff0c;當你在瀏覽器點擊后退按鈕的時候&#xff0c;你可以沖瀏覽歷史上獲得回退的信息&#xff0c;這聽起來并不復雜&#xff0c;是可以…

ruby array_在Ruby中使用Array.pop和Array.shift方法從Array中刪除元素

ruby arrayRuby Array.pop和Array.shift方法 (Ruby Array.pop and Array.shift methods) If you are reading an article that is related to deleting elements from the instance of Array class then it is expected from you that you are aware of the basic things relat…

python語言百分號的含義_python中百分號意思的是什么

python中百分號意思的是什么 發布時間&#xff1a;2020-07-09 16:38:13 來源&#xff1a;億速云 閱讀&#xff1a;158 python中百分號意思的是什么&#xff1f;很多新手對此不是很清楚&#xff0c;為了幫助大家解決這個難題&#xff0c;下面小編將為大家詳細講解&#xff0c;有…

MATLAB學習——矩陣

矩陣矩陣運算算術運算基本算術運算點運算關系運算邏輯運算元素處理取整取模和取余矩陣分析與處理矩陣行列式、秩與跡、特征值分析矩陣的逆與線性方程組求解矩陣的分解與變換矩陣運算 算術運算 基本算術運算 #檢查矩陣階數[n,m] size(A),l length(A) A [1 2;3 4] B [1 1;…

sqldeveloper mysql遷移_通過SQL Developer工具將MySQL數據庫內容遷移至Oracle的步驟

通過SQL Developer工具將MySQL數據庫內容遷移至Oracle的步驟發布時間&#xff1a;2020-06-08 15:52:18來源&#xff1a;51CTO閱讀&#xff1a;210作者&#xff1a;三月本篇文章給大家主要講的是關于通過SQL Developer工具將MySQL數據庫內容遷移至Oracle的步驟的內容&#xff0c…

未能成功加載擴展程序_【JAVA虛擬機(JVM)精髓】09-幾種不同的類加載器

持續更新JVM相關知識&#xff0c;敬請關注&#xff1a;Java虛擬機精髓專欄?zhuanlan.zhihu.com上一節說了下類加載器和類加載過程。這一節我們看下幾種不同的類加載器。JVM支持的類加載器有兩類&#xff0c;分別是引導類加載器和自定義加載器。這里的自定義自定義加載器&#…

Oracle .事物,提交,回滾

事物&#xff08;transaction&#xff09; -->作為單個邏輯工作單元執行的一系列操作&#xff08;要么全部成功要么全部失敗&#xff09; 提交&#xff08;commit&#xff09; -->系列操作全部成功的場合才會執行 回滾&#xff08;rollback&#xff09; -->系列操作其…

perl 哈希數組的哈希_第一個元素使用哈希在數組中出現K次

perl 哈希數組的哈希Prerequisite: Hashing data structure 先決條件&#xff1a; 哈希數據結構 Problem statement: 問題陳述&#xff1a; Find the first element occurring K times in the array. 查找數組中出現K次的第一個元素。 Example: 例&#xff1a; Input array…

圖片md5修改工具_如何修改視頻和圖片的MD5,用電腦自帶的命令

首先說下&#xff0c;md5到底是啥&#xff0c;它是一段固定長度的數據。無論原始數據是多長或多短&#xff0c;其MD5值都是128bit。另外md5是確定性&#xff0c;一個原始數據的MD5值是唯一的&#xff0c;同一個原始數據不可能會計算出多個不同的MD5值&#xff1b;類似人類的身份…