您的位置:首页 > 数据库 > MySQL

mysql 函数 生成校验码

2016-07-18 09:19 274 查看
drop function if exists test.get_scan_code;

delimiter $

create function `test`.`get_scan_code`(as_code varchar(128))  
returns VARCHAR(128)

begin
declare ls_rc VARCHAR(255) DEFAULT '';
declare ls_checkcode VARCHAR(255) DEFAULT '';
declare A,B,C,D,E int default 0;  
declare J,K int ;  
declare X int ;  
declare ls_tmp varchar(128) ;  

  set as_code=trim(as_code);

  set K = 1;

  set X = LENGTH(as_code);

  set J = X;

  WHILE J >= 1 DO   
set K = K + 1 ;
set ls_tmp = mid(as_code,J,1);
If mod(K,2)=0 Then
set A = A + (ls_tmp + 0);
ElseIf K>2 and mod(K,2)=1 Then
set C = C + (ls_tmp + 0);
End If;
set J = J - 1;

  end while ;

  

  set B = A * 3;

  set D = B + C;

  set E = 10 - mod(D,10);

  set ls_checkcode = CAST(E AS CHAR);

  set ls_rc = CONCAT(as_code,ls_checkcode);

  return ls_rc; 

end$

delimiter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: