千家信息网

MySQL自定义函数简单用法示例

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文实例讲述了MySQL自定义函数用法。分享给大家供大家参考,具体如下:先来一个简单的,创建一个函数将'2009-06-23 00:00:00'这样格式的datetime时间转化为'2009年6月23
千家信息网最后更新 2026年11月02日MySQL自定义函数简单用法示例

本文实例讲述了MySQL自定义函数用法。分享给大家供大家参考,具体如下:

先来一个简单的,创建一个函数将'2009-06-23 00:00:00'这样格式的datetime时间转化为'2009年6月23日0时0分0秒'这样的格式:

DELIMITER $$DROP FUNCTION IF EXISTS `sp_test`.`getdate`$$CREATE FUNCTION `sp_test`.`getdate`(gdate datetime) RETURNS varchar(255)BEGINDECLARE x VARCHAR(255) DEFAULT '';SET x= date_format(gdate,'%Y年%m月%d日%h时%i分%s秒');RETURN x;END $$DELIMITER ;

解析:

第一句是定义一个结束标识符,因为MySQL默认是以分号作为SQL语句的结束符的,而函数体内部要用到分号,所以会跟默认的SQL结束符发生冲突,所以需要先定义一个其他的符号作为SQL的结束符;

第二句是如果这个函数已经存在了,就删除掉,sp_test是数据库的名字,函数是跟数据库相关联的,getdate是函数的名字;

第三句是创建一个函数,()里是参数的名字和类型,RETURNS 定义这个函数返回值的类型;

函数体必须放在BEGIN END之间;

DECLARE 是定义函数体的变量,这里定义一个变量x,默认是空,然后SET给x变量赋值;

RETURN 是返回值,这里把变量x返回,x的类型必须与第三句中定义的返回类型一致。

调用:

SELECT getdate('2009-06-23 00:00:00');

返回 '2009年06月23日00时00分00秒'

分支结构

DELIMITER $$DROP FUNCTION IF EXISTS `sp_test`.`cutString` $$CREATE FUNCTION `sp_test`.`cutString`(s VARCHAR(255),n INT) RETURNS varchar(255)BEGINIF(ISNULL(s)) THEN RETURN '';ELSEIF CHAR_LENGTH(s)

解析:

这是一个截取字符串的函数,参数有两个,一个是字符串s,一个是数字n,将字符串s保留前n位,如果字符串的个数小于n,则返回字符串s,如果大于n,则返回前n位后面加...。

调用:

SELECT cutString('abcdefghijklmnopqrstuvwxyz',5);

返回 'abced...'

循环结构

DELIMITER $$DROP FUNCTION IF EXISTS `sp_test`.`morestar`$$CREATE FUNCTION `sp_test`.`morestar`(n INT) RETURNS textBEGINDECLARE i INT DEFAULT 0;DECLARE s TEXT DEFAULT '';myloop:LOOPSET i=i+1;SET s = CONCAT(s,'*');IF i > n THEN LEAVE myloop;END IF;END LOOP myloop;RETURN s;END $$DELIMITER ;

解析:产生n个*。

调用:

SELECT morestar(5);

返回 '*****'

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》

希望本文所述对大家MySQL数据库计有所帮助。

函数 字符 字符串 变量 技巧 数据 数据库 类型 名字 结束符 分号 参数 大全 格式 结构 一致 专题 两个 个数 之间 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网品科技 科技制造互联网公司 互联网金融 科技 广州善班互联网科技 顶级互联网科技成果有哪些 科技与互联网哪个更好 广州恒生互联网科技有限 昭通互联网科技选哪家 崇明区互联网教育科技诚信经营 互联网与医疗科技 洛阳昕诺飞互联网科技有限公司 呼和浩特新华互联网科技学院 电子科技大学互联网创业大赛 小米互联网科技园入驻 云南省自由互联网科技有限公司 互联网科技接地气 国产互联网科技公司 互联网科技快速发展优美句子 互联网 科技节活动 微视频大赛 科技和互联网公司 河南真二互联网科技有限公司 科技与互联网发展 紫鲸互联网科技 互联网科技公司名称 成都玖崟互联网科技有限公司乐商圈怎么样 互联网在线教育科技创业 黑科技 体验场景 互联网大会 产业互联网科技服务公司 互联网界的黑科技
0