喜迎
春节

MySQL自定义函数


有时候要对MySQL数据进行批量处理,仅仅依靠已有的内置函数是不够的,这个时候就需要添加一些自定义的函数了,下面列举一些常用的自定义函数

1. 批量处理字符串,将”FEEED305904B”转为”FE:EE:D3:05:90:4B”格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
DROP FUNCTION IF EXISTS `SPLIT_STR`; 
delimiter $$
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)

BEGIN
DECLARE i INT DEFAULT 0;
DECLARE s text DEFAULT '';
myloop: LOOP
SET i = i+pos;
SET s = CONCAT(s,delim,left(x,pos));
SET x = right(x,length(x)-pos);
if pos>length(x) then
if length(x)>0 then
SET s = CONCAT(s,delim,x);
end if;
leave myloop;
end if;
END LOOP myloop;
RETURN right(s,length(s)-length(delim));
DROP FUNCTION IF EXISTS `SPLIT_STR`;
delimiter $$
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)

BEGIN
DECLARE i INT DEFAULT 0;
DECLARE s text DEFAULT '';
myloop: LOOP
SET i = i+pos;
SET s = CONCAT(s,delim,left(x,pos));
SET x = right(x,length(x)-pos);
if pos>length(x) then
if length(x)>0 then
SET s = CONCAT(s,delim,x);
end if;
leave myloop;
end if;
END LOOP myloop;
RETURN right(s,length(s)-length(delim));
END $$

调用:SELECT SPLIT_STR('FEEED305904B', ':', 2);


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
PHPExcel笔记
PHPExcel笔记
1. 设置字体和样式123$objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray(['font'=>['bold'=>true]]);
2018-11-06
下一篇 
PHP生成数据字典
PHP生成数据字典
通过php代码生成MySQL数据字典,代码如下: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
2018-06-21
  目录