1、15位身份證號
創(chuàng)新互聯(lián)建站秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè),小程序定制開發(fā),網(wǎng)頁設(shè)計(jì)制作,成都手機(jī)網(wǎng)站制作,成都全網(wǎng)營銷幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長。
15位身份證號編碼格式:6位地區(qū)編碼+2位出生年份+2位出生月份+2位出生日期+3位流水號
其中3位流水號的最后一個為單數(shù)的則為男性,雙數(shù)或零的為女性
2、18位身份證號
18位身份證號編碼格式:6位地區(qū)編碼+4位出生年份+2位出生月份+2位出生日期+3位流水號+1位校驗(yàn)碼
其中3位流水號的最后一個為單數(shù)的則為男性,雙數(shù)或零的為女性
1位校驗(yàn)碼的規(guī)則是:
將前面的身份證號碼17位數(shù)分別乘以不同的系數(shù)。第i位對應(yīng)的數(shù)為[2^(18-i)]mod11。從第一位到第十七位的系數(shù)分別為:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;
2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加;
3、用加出來和除以11,看余數(shù)是多少?;
4、余數(shù)只可能有0 1 2 3 4 5 6 7 8 9 10這11個數(shù)字。其分別對應(yīng)的最后一位身份證的號碼為1 0 X 9 8 7 6 5 4 3 2;
通過上面得知如果余數(shù)是2,就會在身份證的第18位數(shù)字上出現(xiàn)羅馬數(shù)字的Ⅹ。如果余數(shù)是10,身份證的最后一位號碼就是2;
例如:某男性的身份證號碼是34052419800101001X。我們要看看這個身份證是不是合法的身份證。
首先:我們得出,前17位的乘積和是189
然后:用189除以11得出的結(jié)果是17 + 2/11,也就是說余數(shù)是2。
最后:通過對應(yīng)規(guī)則就可以知道余數(shù)2對應(yīng)的數(shù)字是x。所以,這是一個合格的身份證號碼。
PHP 計(jì)算公式:
$card="xxx";//身份證號碼
$map=array(1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2);
$sum = 0;
for($i = 17; $i 0; $i--){
$s=pow(2, $i) % 11;
$sum += $s * $card[17-$i];
}
echo $map[$sum % 11];//這里顯示最后一位校驗(yàn)碼
我的表結(jié)構(gòu)如下:
create table students(id int auto_increment,
name varchar(10) not null DEFAULT '',
age int not null DEFAULT 0,
sex varchar(2) not null DEFAULT '',
studId varchar(18) not null DEFAULT '',
PRIMARY KEY (`id`));
觸發(fā)器:
DELIMITER $$
CREATE TRIGGER `students_insert` BEFORE INSERT ON `students`
FOR EACH ROW
BEGIN
if mod(substring(new.studId,17,1),2)=0 then
set new.sex = '女';
else
set new.sex = '男';
end if;
END;
$$
DELIMITER ;
以上程序已測試通過,
另外友情提醒一下,在觸發(fā)器中處理這個判斷,效率不高,最好在程序中處理這部分邏輯.
你這個相當(dāng)于兩個條件,所以就需要查詢兩次了,如果合并,這就需要子查詢了。
如下查詢你修改一下應(yīng)該就沒有問題了
select * from table t where t.id in(select t.id from table t where t.gender='男' order by t. grade limit 5) or t.id in(select t.id from table t where t.gender='女' and order by t. grade limit 5)
15位身份證:最后一位表示男單女雙。
18位身份證:倒數(shù)第二位表示男單女雙。
這是身份證號碼的規(guī)則。
SELECT
CASE
RIGHT(shengfenzheng,1)%2
WHEN
1
THEN
'男'
ELSE
'女'
END
AS
性別
mysql-根據(jù)生日查20周歲以內(nèi)的學(xué)生。
是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。
CREATE TABLE t_user (
id INT(11) NOT NULL AUTO_INCREMENT,
sex CHAR(2) NULL,
PRIMARY KEY (id),
CONSTRAINT sex CHECK (sex in('男','女')));
擴(kuò)展資料:
1、數(shù)據(jù)庫:在MySQL中,要存儲數(shù)據(jù),必須從數(shù)據(jù)庫開始,因此首先要創(chuàng)建數(shù)據(jù)庫,但由于學(xué)校的MySQL服務(wù)器對學(xué)生數(shù)據(jù)帳號有限止。
2、學(xué)生不得創(chuàng)建數(shù)據(jù)庫,故每個學(xué)生的帳號中已事先由信息中心為大家建立了一個名為帳號名的數(shù)據(jù)庫。但我們必須了解創(chuàng)建數(shù)據(jù)庫的語句為CREATE DATABASE 數(shù)據(jù)庫名
3、數(shù)據(jù)表結(jié)構(gòu):創(chuàng)建一個數(shù)據(jù)表的第一步即為創(chuàng)建數(shù)據(jù)表結(jié)構(gòu),在數(shù)據(jù)表結(jié)構(gòu)中的內(nèi)容包括:有幾個字段,每個字段的名稱,字段的類型,字段的長度,字段的屬性。
4、字段:它是構(gòu)成數(shù)據(jù)表結(jié)構(gòu)的必須元素,一列數(shù)據(jù)就是一個字段。
5、字段名:用來描述字段的名稱,它可以用中文、英文字母、數(shù)字等字符來描述。
6、字段類型:用來限定數(shù)據(jù)的一種方式,即每一個字段下的數(shù)據(jù)必定類型是相同的。
7、字段長度:即每一列字段中的數(shù)據(jù)位數(shù)。