mysql四维数组_MySQL如何实现数组功能
前段时间想要用数组功能实现某些需求,结果发现mysql不支持数组,这个确实让人很头痛。查阅官方文档,也没有这一方面的资料。结果在网上,看到了某仁兄贴出了变相实现的一种方法,代码如下:
DELIMITER ;
DROP DATABASE IF EXISTS PRO;
USE MYSQL
CREATE DATABASE PRO;
USE PRO
DROP TABLE IF EXISTS TEMP;
CREATE TABLE TEMP (
ID INT(8) NOT NULL AUTO_INCREMENT,
FOREIGN_KEY INT(8) NOT NULL,
PRIMARY KEY (ID)
) TYPE=MyISAM AUTO_INCREMENT=1 COMMENT='测试';
DELIMITER ;
DELIMITER //
DROP PROCEDURE IF EXISTS DNA //
CREATE PROCEDURE DNA (IN THE_CNT INT(8), IN THE_STR VARCHAR(10000))
BEGIN
DECLARE i INT(8) DEFAULT 0;
REPEAT SET i = i + 1;
INSERT INTO TEMP VALUES (NULL, SUBSTRING_INDEX(SUBSTRING_INDEX(THE_STR, ',', i), ',', -1));
UNTIL i >= THE_CNT END REPEAT;
END
//
DELIMITER ;
CALL DNA(7, '231,24,1114,151,7831241,9134,989');
SELECT * FROM TEMP;
+----+-------------+
| ID | FOREIGN_KEY |
+----+-------------+
| 1 | 231 |
| 2 | 24 |
| 3 | 1114 |
| 4 | 151 |
| 5 | 7831241 |
| 6 | 9134 |
| 7 | 989 |
+----+-------------+
看了一下他的代码,觉得改方法不是很灵活,比如需要每次输入要轮询的次数,如这里输入了7,这个让我看起来很不舒服。于是自己动手修改了一下,特地也把代码贴出了,如下:
DELIMITER $$
DROP PROCEDURE IF EXISTS `Pr_Rand_insert`$$
CREATE PROCEDURE `Pr_Rand_insert`(
IN insert_string VARCHAR(10000) -- 定义输入
)
BEGIN
DECLARE I INT(8) DEFAULT 1;
DECLARE J INT(8) DEFAULT 0;
SET J = CHAR_LENGTH(insert_string)-CHAR_LENGTH(REPLACE(insert_string,',','')) + 1; -- 计算共有多少位为",",则再加上1就表示共有多少个数值需要插入
WHILE (I <= J) DO
INSERT INTO num VALUES (SUBSTRING_INDEX(SUBSTRING_INDEX(insert_string,',',I),',',-1)); -- 用到了substring_index()函数
SET I = I + 1;
END WHILE;
SELECT CONCAT('共插入了',J,'个值,请确认');
END$$
DELIMITER ;
希望对各位有帮助,有问题的可以和我交流交流
mysql四维数组_MySQL如何实现数组功能相关推荐
- mysql 闪回_MySQL Flashback 闪回功能详解
1. 简介 mysqlbinlog flashback(闪回)用于快速恢复由于误操作丢失的数据.在DBA误操作时,可以把数据库恢复到以前某个时间点(或者说某个binlog的某个pos).比如忘了带wh ...
- mysql 存储过程 定义数组_MySql存储过程
Mysql进阶 存储过程 1 什么是存储过程 1.存储过程,带有逻辑的sql语句 2.之前的sql没有条件判断,没有循环 3.存储过程带上流程控制语句(if while) 2 存储过程特点 1)执行效 ...
- mysql 字符转数组_mysql下将分隔字符串转换为数组
MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用. 现有一段字符串,如apple,banana,orange,pears,grape,要把它按照逗 ...
- php 数组与数组之间去重,PHP开发中一维数组与二维数组去重功能实现教程
本篇文章讲述了PHP实现一维数组与二维数组去重功能示例.希望对在php学习和开发的同学有所帮助! 数组中重复项的去除 一维数组的重复项: 使用array_unique函数即可,使用实例如下: ? $a ...
- shell 数组里追加数值_shell编程之数组及变量的多功能用法
数组及变量的多功能用法 一.数组: 1.数组:存储多个元素的连续的内存空间,相当于多个变量的集合(变量:存储单个元素的内存空间). 2.数组名和索引 索引:编号从0开始,属于数值索引 bash的数组支 ...
- new创建 一维数组、二维数组、三维数组、四维数组...
用new创建多维数组时,最后需要用delete,但是我在delete时遇到了麻烦,实在不能再浪费时间了,先mark一下,至少创建多维数组这段是对的 以int型数组为例,我们知道 一维数组 int a ...
- mysql统计唯一个数_统计数组元素的个数和唯一性的函数
有些函数可以用来确定数组中的值总数及唯一值的个数.使用函数count()对元素个数进行统计,sizeof()函数时count()的别名,他们的功能是一样的. ①函数count() 函数count()的 ...
- Vue数组更新及过滤排序功能
Vue为了增加列表渲染的功能,增加了一组观察数组的方法,而且可以显示一个数组的过滤或排序的副本.本文将详细介绍Vue数组更新及过滤排序 前面的话 Vue为了增加列表渲染的功能,增加了一组观察数组的方法 ...
- c 实现 php 数组,C语言实现数组功能
array.h 文件 typedef struct { int len; int num; int *head; } A; void init_array(A *a, int len); /* 初始化 ...
最新文章
- Android Studio窗口组成
- 科大星云诗社动态20201231
- ECharts的点击事件
- 基于JAVA+SpringBoot+Mybatis+Vue+MYSQL的智慧养老管理系统
- matlab动态图最新存储文件,MATLAB 动图绘制、保存
- 腾讯打免费牌争抢市场 马化腾表示QQ旋风免费
- 详解阿里云第六代增强型实例,性能强劲,百万IOPS加持
- 计算机网络--基站 NFC 蓝牙 RFID ETC 云计算 云桌面
- 3dMax 单位设置(门)
- 戴尔r410服务器raid装系统,Dell R410 Raid磁盘阵列驱动
- 软考中级嵌入式系统设计师备考攻略
- 安全合规/法案--34--《APP违法违规收集使用个人信息行为认定方法》原文及解读
- vue双花括号的使用
- 安卓程序打包到安卓手机上运行Android程序
- AutoSAR开发的三种方法:自上而下式、自下而上式、混合式
- 编程培训怎么样 哪家编程培训机构靠谱
- CMMI3级和5级的区别
- SpringCloud Gateway微服务网关实战与源码分析-上
- HashMap 滚瓜烂熟 ConcurrentHashMap支支吾吾
- 最大化参数 火车头_火车头使用正则匹配模式采集数据