mysql function函数语法
发布时间:2022-09-27 13:16:08 所属栏目:MySql教程 来源:
导读: delimiter
在mysql的命令行操作中的作用:指定一个符号为一条SQL 语句的结束,默认为分号。一条SQL语句结束时会立即执行MySQL 函数,而procedure与function中存在分号,所以定义procedure与function之前
在mysql的命令行操作中的作用:指定一个符号为一条SQL 语句的结束,默认为分号。一条SQL语句结束时会立即执行MySQL 函数,而procedure与function中存在分号,所以定义procedure与function之前
delimiter 在mysql的命令行操作中的作用:指定一个符号为一条SQL 语句的结束,默认为分号。一条SQL语句结束时会立即执行MySQL 函数,而procedure与function中存在分号,所以定义procedure与function之前,需要先修改此符号。如:delimiter // 变量 变量名为‘@xxx’形式,不需声明,可直接使用,默认值为NULL(但procedure或函数中的局部变量名不带@,且需要声明,格式:declare 变量名 datatype。但procedure或函数等结构体中也能直接使用’@xxx’形式的变量,且可在外部访问到) SET指令 变量进行赋值 删除函数 drop function if exists fn_name; 明确指明函数的类型 为function指定一个参数。 DETERMINISTIC, NO SQL 和 READS SQL DATA 相当于明确的告知MySQL服务器这个函数不会修改数据 1 DETERMINISTIC 确定的 2 NO SQL 没有SQl语句,当然也不会修改数据 3 READS SQL DATA 只是读取数据,当然也不会修改数据 4 MODIFIES SQL DATA 要修改数据 5 CONTAINS SQL 包含了SQL语句 示例 delimiter $$ CREATE FUNCTION `fn_cutAppName`(appName varchar(4000)) RETURNS varchar(4000) CHARSET utf8mb4 DETERMINISTIC begin DECLARE ret varchar(4000); case when (appName like '%护照号%' or appName like '%身份证号%') then set @leftindex= LOCATE('(',appName); if (@leftindex =0) then set @leftindex = LOCATE('(',appName); end if; if (@leftindex =0) then set @leftindex = LOCATE('护照号',appName); end if; if (@leftindex =0) then set @leftindex = LOCATE('身份证号',appName); end if; mysql decode 函数_MySQL 函数_mysql有decode函数吗 case when (@leftindex >0) then set ret = trim(left(appName,(@leftindex-1))); else set ret = appName ; end case; else set ret = appName; end case; return (select ret); end end $$ 调用函数 select fn_cutAppName('无限责任公司'); (编辑:应用网_常德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐