一, 内置函数
官方文档:
MySQL 常用内置函数:
CHAR_LENGTH(str): 返回值为传入字符串的长度, 长度的单位为字符
CONCAT(str1,str2,...): 字符串拼接
CONCAT_WS(separator,str1,str2,...): 可自定义连接符的字符串拼接
示例:
- mysql> select concat_ws('-','admin','123');
- +------------------------------+
- | concat_ws('-','admin','123') |
- +------------------------------+
- | admin-123 |
- +------------------------------+
CONV(num,from_base,to_base): 进制转换
示例: 将 20 从十进制转换为二进制
- mysql> select conv(20,10,2);
- +---------------+
- | conv(20,10,2) |
- +---------------+
- | 10100 |
- +---------------+
- 1 row in set (0.00 sec)
INSERT(str,x_path,y_len,new_str): 指定位置插入字符串
示例:
- mysql> select insert('1234567','2','3','new');
- +---------------------------------+
- | insert('1234567','2','3','new') |
- +---------------------------------+
- | 1new567 |
- +---------------------------------+
- 1 row in set (0.00 sec)
INSTR(str,substr): 返回字符串 str 中子字符串的第一个出现位置
LOWER(str): 将字符串 str 变小写
UPPER(str): 将字符串 str 变大写
TRIM(str): 返回字符串 str 并删除首尾部空格字符
LTRIM(str): 返回字符串 str 并删除首部空格字符
示例:
- mysql> select ltrim('1 2 3');
- +--------------------+
- | ltrim('1 2 3') |
- +--------------------+
- | 1 2 3 |
- +--------------------+
RTRIM(str): 返回字符串 str 并删除尾部空格字符
LEFT(str,len): 返回字符串 str 左边 len 个字符, len 为 null 则返回 null
RIGHT(str,len): 返回字符串 str 右边 len 个字符, len 为 null 则返回 null
REPLACE(str,old_str,new_str):new_str 字符串替换 old_str 字符串
REVERSE(str): 返回字符串 str , 顺序和字符顺序相反
REPEAT(str,count): 返回重复 count 次数的字符串 str
示例:
- mysql> select repeat('hey',10);
- +--------------------------------+
- | repeat('hey',10) |
- +--------------------------------+
- | heyheyheyheyheyheyheyheyheyhey |
- +--------------------------------+
SUBSTRING(str,pos,len): 返回字符串 str 中从位置 pos 起, 长度为 len 的子字符串
RPAD(str,len,pad): 用 pad 对 str 字符串从右边开始填充, 直到 len 长度
LPAD(str,len,pad): 用 pad 对 str 字符串从左边开始填充, 直到 len 长度
示例:
- mysql> select lpad('hello',10,'#');
- +----------------------+
- | lpad('hello',10,'#') |
- +----------------------+
- | #####hello |
- +----------------------+
二, 自定义函数
MySQL 自定义函数存储着一系列的 sql 语句, 与存储过程类似, 但不同的是函数只会返回一个值, 而存储过程不仅可以有返回值, 还有结果集的输出.
1, 创建函数
f1 函数可以传入两个 int 类型的值, 函数返回结果也是 int 类型
- delimiter \create function f1( i1 int, i2 int)
- returns int
- BEGIN
- declare num int;
- set num = i1 + i2;
- return(num);
- END \delimiter ;
2, 执行函数
- # 查询使用
- select f1(10,11);
- #sql 语句块内赋值使用
- declare num int;
- select nid into num from student where nid = 1;
3, 删除函数
drop function func_name;
来源: http://www.bubuko.com/infodetail-2766306.html