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
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
相关文章推荐
- 安装mysql Install/Remove of the Service Denied!错误的解决办法
- MySQL5.6 Replication主从复制(读写分离) 配置完整版
- MySQL触发器
- MySQL 数据库性能优化之SQL优化
- mysql LIMIT 子句用法及原理
- 全面解析Windows下安装 mysql5.7的方法
- mysql-innodb 日志机制分析----写在死锁前面
- MySQL在创建索引之前一定要想到的事情
- 使用MySQL踩过的坑
- mac之配置mysql到环境变量及使用命令操作数据库
- MYSQL基础笔记(四)-数据基本操作
- ubuntu14.04上安装Mysql-5.7.11
- MySql Server 命令行打开闪退的解决方案
- MySQL数据库(5)----删除或更新已有行
- 为mysql安装sysbench
- windows安装配置mysql-5.7.13-winx64方法
- pandas和数据库进行交互(以mysql为例)
- 创建和操作表
- MySQL数据表修复, 如何修复MySQL数据库(MyISAM / InnoDB)
- MySQL数据表修复, 如何修复MySQL数据库(MyISAM / InnoDB)