欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql判斷身份證號

傅智翔2年前8瀏覽0評論

MySQL是一款常用的關系型數據庫管理系統。在很多應用程序中需要進行身份證號的驗證。下面我們介紹如何在MySQL中實現對身份證號的驗證。

DELIMITER //
CREATE FUNCTION check_idcard(idcard CHAR(18)) RETURNS BOOLEAN
BEGIN
DECLARE factor INT;
DECLARE checkcode INT;
SET factor = 2;
SET checkcode = 0;
FOR i IN 1..16 DO
SET checkcode = checkcode + SUBSTRING(idcard,i,1) * factor;
SET factor = IF(factor = 2, 1, 2);
END FOR;
SET checkcode = 12 - MOD(checkcode, 11);
IF checkcode = 10 THEN SET checkcode = "X"; END IF;
RETURN SUBSTRING(idcard, 17) = checkcode;
END //
DELIMITER ;

上面的代碼實現了一個函數,函數名為check_idcard,輸入參數為一個18位的字符串形式的身份證號碼,返回值為布爾值,表示輸入的身份證號是否有效。

函數內部的實現采用了身份證驗證的算法。具體來說,算法是按照國家標準GB 11643-1999《公民身份證號碼》所規定的計算方法進行校驗。這個算法比較簡單,就不在這里詳細介紹了。

使用這個函數的方法很簡單,只需要在MySQL中執行下面的語句:

SELECT check_idcard('110101198001010010') AS valid;

其中,輸入的參數就是身份證號。

上面的代碼執行后,返回值為1,表示輸入的身份證是有效的。如果返回值為0,則表示輸入的身份證無效。