Mysql 函数的应用
CREATE TABLE `code_generate_dd` (
`id` int(50) NOT NULL AUTO_INCREMENT COMMENT '主键',
`first_code` varchar(10) NOT NULL COMMENT '第一段code',
`second_code` varchar(8) NOT NULL COMMENT '第二段code',
`last_code` varchar(10) NOT NULL COMMENT '尾段',
`generate_type` varchar(20) NOT NULL COMMENT '编码类型',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='单据号规则订单(只针对订单)'
DELIMITER $$ CREATE DEFINER = `root` @`%` FUNCTION `fn_max` (f_generate_type VARCHAR (50)) RETURNS VARCHAR (50)
BEGIN
DECLARE result VARCHAR (50) ;
SET result =
(SELECT
MAX(cg.`last_code`)
FROM
code_generate cg
WHERE 1 = 1
AND cg.`second_code` = DATE_FORMAT(NOW(), '%Y%m%d')
AND cg.`generate_type` = f_generate_type) ;
RETURN result ; END $$ DELIMITER ; SELECT fn_max("brd")
;
=======================================
DELIMITER $$ DROP FUNCTION IF EXISTS `fn_lastcode`$$ CREATE DEFINER = `root` @`%` FUNCTION `fn_lastcode` (f_generate_type VARCHAR (50)) RETURNS VARCHAR (50) CHARSET utf8
BEGIN
DECLARE result VARCHAR (50) ;
IF (fn_max (f_generate_type) = NULL)
THEN SET result =
(SELECT
RIGHT(CONCAT('', '' + 1), 5)) ;
ELSE SET result =
(SELECT
RIGHT(
CONCAT(
'',
(fn_max (f_generate_type)) + 1
),
5
)) ;
END IF ;
RETURN result ;
END $$ DELIMITER ; SELECT fn_lastcode('brd');
;
====================================================
DELIMITER $$ CREATE DEFINER = `root` @`%` FUNCTION `fn_getBRD` (f_generate_type VARCHAR (50)) RETURNS VARCHAR (50)
BEGIN
DECLARE result VARCHAR (50) ;
INSERT INTO code_generate_dd (
first_code,
second_code,
last_code,
generate_type
)
VALUES
(
f_generate_type,
DATE_FORMAT(NOW(), '%Y%m%d'),
fn_lastcode (f_generate_type),
f_generate_type
) ;
SET result =
(SELECT
CONCAT(
dd.`first_code`,
dd.`second_code`,
dd.last_code
) aa
FROM
code_generate_dd dd
WHERE 1 = 1
AND id =
(SELECT
MAX(id)
FROM
code_generate_dd)) ;
RETURN result ;
END $$ DELIMITER ; SELECT fn_getBRD("brd");
这个是在数据库底层,直接调用,返回编码;用sql 写的函数;
注意:mysql 和oracle在函数创建的时候,规范有点不一样;
Mysql 函数的应用的更多相关文章
- Mysql - 函数
Mysql提供的函数是在是太多了, 很多我都见过, 别说用了. 园子里面, 有人弄了一个比较全的. MYSQL函数 我这里会将他写的完全拷贝下来, 中间会插入一些自己项目中使用过的心得 一.数学函数 ...
- mysql连接查询,封装mysql函数
连接查询 交叉连接语法: select * | 字段列表 from 表1 cross join 表2 内连接: select *|字段列表 from 左表 inner join 右表 on 左表. ...
- MySQL 函数大全
mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NU ...
- MySQL函数不能创建的解决方法
MySQL函数不能创建,是一个很麻烦的问题,下面就为您提供了一个解决此问题的方法,如果您也遇到过类似的问题,不妨一看. http://database.51cto.com/art/201010/229 ...
- Mysql函数:Last_insert_id()语法讲解
Mysql函数可以实现许多我们需要的功能,下面介绍的Mysql函数Last_insert_id()就是其中之一,希望对您学习Mysql函数能有所帮助. 自动返回最后一个INSERT或 UPDATE 查 ...
- linux下mysql函数的详细案列
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...
- MySQL函数讲解(MySQL函数大全)
讲mysql函数之前先给大家展示一下利用mysql函数的一个例子: SELECT i.item_id, i.item_name, i.cid, i.last_update_time, u.url, u ...
- mysql函数全解析
本文摘自:http://www.cnblogs.com/cocos/archive/2011/05/06/2039469.html mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ...
- MySQL函数笔记
MySQL函数笔记 日期函数 SELECT t1.xcjyrq, t1.* FROM view_sbxx t1 WHERE t1.syzt ; SELECT t1.xcjyrq, t1.* FROM ...
- 【转】mysql函数
MySQL函数 MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括 ...
随机推荐
- objdump命令
0x00 objdump命令是Linux下的反汇编目标文件或者可执行文件的命令 0x01 objdump -f 显示test的文件头信息 $ objdump -f levellevel: file ...
- ios之自定义导航栏上的返回按钮
导航栏的按钮,右边的按钮是可以自己随意添加的.但左边的返回按钮怎么定制?你会说,添加一个自己的按钮呗!你可以试试看,这样行不行. 正确的答案是重载UINavigationController类的pus ...
- ios之UIProgressView
UIProgressView和UIActivityIndicator有些类似 但是不同之处在于, UIProgressView能够更加精确的反应进度 UIActivityIndicator则只能表 ...
- 【动态规划】poj2353Ministry
拓扑序……好些玄妙 Description Mr. F. wants to get a document be signed by a minister. A minister signs a doc ...
- python基础知识13-迭代器与生成器,导入模块
异常处理作业讲解 file = open('/home/pyvip/aaa.txt','w+') try: my_dict = {'name':'adb'} file.write(my_dict['a ...
- JavaScript正则表达式-定义
通过RegExp()构造函数创建RegExp对象来定义正则表达式. var reg_pattern = new RegExt("a\d"); 通过字面语法直接定义正则表达式. va ...
- BZOJ 2508: 简单题
题目大意: 加入直线,删除直线,求点到所有直线的距离的平方和. 题解: 把点到直线的距离公式写出来,然后展开.维护六个值,计算一个二元的多项式的最小值. 对x和y分别求导,导数都为零时取到极值.然后解 ...
- SQL Server on Red Hat Enterprise Linux
本文从零开始一步一步介绍如何在Red Hat Enterprise Linux上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一. 创 ...
- pat 1029 1029. 旧键盘(20)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的文字.以及实际 ...
- 2014 ACM/ICPC Asia Regional 北京 Online
G - Grade Ted is a employee of Always Cook Mushroom (ACM). His boss Matt gives him a pack of mushroo ...