mysql自定义函数实现

article/2025/9/24 19:24:56

mysql自定义函数实现

环境准备

查看mysql版本

select version();

在这里插入图片描述
查看mysql存储引擎

show variables like '%storage_engine%';

在这里插入图片描述

创建测试表

CREATE TABLE `dsp_user_media_tag` (`id` int(11) NOT NULL AUTO_INCREMENT,`imei` varchar(50) COLLATE utf8_bin DEFAULT NULL,`tagname` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '标签名称',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `dsp_user_interest_tag` (`id` int(11) NOT NULL AUTO_INCREMENT,`imei` varchar(50) COLLATE utf8_bin DEFAULT NULL,`tag` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '用户兴趣标签',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

测试数据

select imei,tagname from test.dsp_user_media_tag limit 10;

在这里插入图片描述
在这里插入图片描述

创建函数

实现用户多标签的合并

drop FUNCTION  if EXISTS test.get_user_media_tag;
create FUNCTION test.get_user_media_tag(user_id VARCHAR(40))
RETURNS text
BEGINDECLARE tags text DEFAULT '';DECLARE tag VARCHAR(64) default '';DECLARE a int DEFAULT 0;DECLARE cur_tags CURSOR for select a.tagname from test.dsp_user_media_tag a where a.imei=user_id;DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET a=1; OPEN cur_tags;while a<>1 DOFETCH cur_tags into tag;set tags = CONCAT(tags,tag);END WHILE;CLOSE cur_tags;RETURN tags;
END;

调用函数

select imei,test.get_user_media_tag(imei) from (select DISTINCT imei from test.dsp_user_interest_tag) u;

附存储过程创建调用方式

drop PROCEDURE if EXISTS test.combine_tags;
create PROCEDURE test.combine_tags()
BEGIN
DECLARE uid VARCHAR(40) DEFAULT '';
DECLARE a int DEFAULT 0;
DECLARE ut text DEFAULT '';
DECLARE user CURSOR FOR  SELECT DISTINCT b.imei from test.dsp_user_interest_tag b;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET a=1; 
OPEN user;FETCH user into uid;while a<>1 doset ut = CONCAT(ut,test.get_user_media_tag(uid));select uid,ut;FETCH  user into uid;end while;
CLOSE user;
END;
call test.combine_tags();		--调用存储过程

http://chatgpt.dhexx.cn/article/RM5x0vvP.shtml

相关文章

MySQL自定义函数用法详解

MySQL自定义函数用法详解-复合结构自定义变量/流程控制 自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有&#xff08;内建&#xff09;函数一样作用的新函数去扩展MySQL。 所以UDF是对MySQL功能的一个扩展 创建和删除自定义函数语法: 创建UDF:…

SQL server 自定义函数FUNCTION的使用

前言&#xff1a; 在SQL server中不仅可以可以使用系统自带的函数&#xff08;时间函数、聚合函数、字符串函数等等&#xff09;&#xff0c;还可以根据需要自定义函数。 一、定义&#xff1a; 用户自定义函数的类型&#xff1a; 1、标量值函数&#xff08;返回一个标量值&a…

功能测试用例设计方法分享

测试用例可以用来衡量一个项目测试质量&#xff0c;因此在平时的测试流程中&#xff0c;编写测试用例就是测试过程中很重要的一步&#xff0c;每一个测试工程师都需要并且非常熟练的编写测试用例&#xff0c;能在编写测试用例中尽可能的覆盖任何异常的测试点&#xff1b;如何能…

判定表测试用例方法——实例

测试用例设计方法——判定表法 判定表法表示的是有多个输入&#xff0c;和多个输出&#xff0c;而且输入与输入之间有相互的组合关系、输入和输出之间有相互的制约和依赖关系, 判定表由四个组成部分 判定表基本概念  条件桩&#xff1a;输入条件, 列出了系统的所有输入&…

测试用例编写方法

测试用例编写方法 等价类划分法 一、等价类划分法的定义 把程序的输入域和输出域划分成若干部分&#xff0c;然后从各个部分中选取若干代表性数据作为测试用例。这些数据在测试中的作用等价于其所属部分的其他值。 二、等价类划分法的术语 等价类&#xff1a;输入域的各个…

软件测试用例设计方法(一)

目录 软件测试用例设计之等价类划分法一、等价类划分法的定义二、等价类划分法的术语三、等价类划分原则四、实例演示&#xff08;三角形问题和档案管理系统问题&#xff09; 软件测试用例之边界值分析法一、边界值分析法定义二、等价类划分法和边界值分析法的区别三、内部边界…

测试用例方法-判定表法

判定表法案例 若用户欠费或关机&#xff0c;则不允许主被叫 等价类划分法和边界值分析法都是着重考虑单个输入的输入条件&#xff0c;但是没有考虑输入条件的各种组合&#xff0c;输入条件与输出条件之间的相互制约关系。所以要使用判定表法才能解决上述案例编写测试用例的过…

编写测试用例方法之错误推测法

今天我们再来介绍另外一个编写测试用例的方法&#xff1a;错误推测法。话不多说&#xff0c;开始整干货&#xff0c;老规矩&#xff0c;首先全图镇楼。 错误推测法其实它不同于等价类划分法或者边界值分析法&#xff0c;它是对有效等价类和边界值分析法的一个补充。因为错误推测…

【测试】编写测试用例的常用方法

文章目录 1&#xff09;等价类划分法1.1 什么是等价类有效等价类&#xff1a;无效等价类&#xff1a; 1.2 划分标准1.3 划分方法1、确立等价类2、转化为测试用例 1.4 实例&#xff1a;三角形问题1.4.1 分析对输入条件的要求&#xff08;显性和隐性&#xff09;1.4.2 列出等价类…

编写测试用例的方法

编写测试用例的方法 一、等价类划分法&#xff08;重点&#xff09;1、应用场景&#xff1a;多用于输入框。2、概念&#xff1a;3、等价类&#xff1a;4、示例&#xff1a; 二、边界值法&#xff08;重点&#xff09;三、场景法&#xff08;重点&#xff09;1、概念&#xff1a…

编写测试用例的七种方法

1 测试用例的概念 测试用例是为了实施测试而向被测试系统提供的一组集合&#xff0c;这组集合包括&#xff1a;测试环境、操作步骤、测试数据、预期结果等要素 2 常见编写测试用例的七种方法 基于需求的设计方法 等价类 边界值 因果图 场景设计法 错误猜测法 3 基于需…

【路径规划】(4) 蚁群算法,附python完整代码

大家好&#xff0c;今天和各位分享一下蚁群算法&#xff0c;并基于 tkinter 完成一个旅行商问题。完整代码可以从我的 GitHub 中获得&#xff1a; https://github.com/LiSir-HIT/Mathematical-Programming/tree/main/Path%20Planning 1. 算法介绍 蚁群算法是由 Mr.Dorigo 博士…

Python编程实现蚁群算法详解

这篇文章主要介绍了Python编程实现蚁群算法详解,涉及蚂蚁算法的简介,主要原理及公式,以及Python中的实现代码,具有一定参考价值,需要的朋友可以了解下 简介 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco…

智能优化算法:蝙蝠算法-附代码

智能优化算法&#xff1a;蝙蝠算法-附代码 文章目录 智能优化算法&#xff1a;蝙蝠算法-附代码1.算法原理2.算法流程3.算法结果4.参考文献5.MATLAB代码6.python代码 摘要&#xff1a;蝙蝠算法&#xff08;Bat Algorithm&#xff0c;BA&#xff09;[1] 是受蝙蝠回声定位捕食行为…

蚁群算法介绍(python)

蚁群算法 什么是蚁群算法 蚁群算法(ant colony optimization, ACO)&#xff0c;又称蚂蚁算法&#xff0c;是仿照蚂蚁寻找食物的最短路径行为来设计的仿生算法&#xff0c;是一种概率型算法&#xff0c;适用于优化组合问题。 特点 对图的对称性和目标函数无特殊要求可以解决…

蝙蝠优化算法(python代码)

1.效果图 2.代码 import numpy as np import math import matplotlib.pyplot as plt# 定义目标函数(示例函数为Rastrigin函数) def rastrigin(x):return 10 * len(x) + np.sum(x**2 - 10 * np.cos(2 * np.pi * x))# 蝙蝠优化算法函数 def bat_algorithm(f, D, N, N_gen, A,…

蚁群算法Python实现

解决的问题 三维地形中&#xff0c;给出起点和重点&#xff0c;找到其最优路径。 作图源码&#xff1a; from mpl_toolkits.mplot3d import proj3d from mpl_toolkits.mplot3d import Axes3D import numpy as npheight3d np.array([[2000,1400,800,650,500,750,1000,950,900…

蚁群算法原理与实现(python)

文章目录 蚁群算法的背景蚁群算法的思想蚁群算法的python实现实例总结 蚁群算法的背景 古有牛顿在苹果树下被苹果砸中发现万有引力&#xff0c;三十年前有人观察蚂蚁觅食发明蚁群算法。蚁群算法是意大利学者Dorigo、Maniezzo等人于20世纪90年代看蚂蚁觅食发明的。蹲在地上看蚂…

Python实现HBA混合蝙蝠智能算法优化循环神经网络分类模型(LSTM分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法&#xff0c;是一种搜索全局最优解的有效方法…

蝙蝠算法(Bat Algorithm,BA)算法

生物学基理 蝙蝠算法&#xff08;Bat Algorithm&#xff0c;BA&#xff09;算法是模拟自然界中蝙蝠利用一种声呐来探测猎物、避免障碍物的随机搜索算法即模拟蝙蝠利用超声波对障碍物或猎物进行最基本的探测、定位能力并将其和优化目标功能相联系。BA算法的仿生原理将种群数量为…