iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么在mysql中存储数组
  • 464
分享到

怎么在mysql中存储数组

2024-04-02 19:04:59 464人浏览 安东尼
摘要

怎么在Mysql中存储数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、创建数据库,用于实例:CREATE DATABASE

怎么在Mysql中存储数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1、创建数据库,用于实例:

CREATE DATABASE huafeng_db;

 

use huafeng_db;

 

DROP TABLE IF EXISTS `huafeng_db`.`t_scores`;

DROP TABLE IF EXISTS `huafeng_db`.`t_students`;

DROP TABLE IF EXISTS `huafeng_db`.`t_class`;

 

CREATE TABLE `huafeng_db`.`t_class` ( `class_id` int(11) NOT NULL, `class_name` varchar(32) CHARACTER SET utf8 DEFAULT NULL,

 PRIMARY KEY (`class_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

INSERT INTO `huafeng_db`.`t_class` (`class_id`, `class_name`) VALUES ('1', '一年级');

INSERT INTO `huafeng_db`.`t_class` (`class_id`, `class_name`) VALUES ('2', '二年级');

INSERT INTO `huafeng_db`.`t_class` (`class_id`, `class_name`) VALUES ('3', '三年级');

INSERT INTO `huafeng_db`.`t_class` (`class_id`, `class_name`) VALUES ('4', '四年级');

INSERT INTO `huafeng_db`.`t_class` (`class_id`, `class_name`) VALUES ('5', '五年级');

INSERT INTO `huafeng_db`.`t_class` (`class_id`, `class_name`) VALUES ('6', '六年级');

 

CREATE TABLE `t_students` ( `student_id` int(11) NOT NULL AUTO_INCREMENT, `student_name` varchar(32) NOT NULL, `sex` int(1) DEFAULT NULL, `seq_no` int(11) DEFAULT NULL, `class_id` int(11) NOT NULL,

 PRIMARY KEY (`student_id`),

 KEY `class_id` (`class_id`),

 CONSTRaiNT `t_students_ibfk_1` FOREIGN KEY (`class_id`) REFERENCES `t_class` (`class_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

INSERT INTO `huafeng_db`.`t_students`(`student_name`,`sex`,`seq_no`,`class_id`) VALUES('小红',0,1,'1');

INSERT INTO `huafeng_db`.`t_students`(`student_name`,`sex`,`seq_no`,`class_id`) VALUES('小青',0,2,'2');

INSERT INTO `huafeng_db`.`t_students`(`student_name`,`sex`,`seq_no`,`class_id`) VALUES('小明',1,3,'3');

INSERT INTO `huafeng_db`.`t_students`(`student_name`,`sex`,`seq_no`,`class_id`) VALUES('小兰',0,4,'4');

INSERT INTO `huafeng_db`.`t_students`(`student_name`,`sex`,`seq_no`,`class_id`) VALUES('小米',1,5,'5');

INSERT INTO `huafeng_db`.`t_students`(`student_name`,`sex`,`seq_no`,`class_id`) VALUES('小白',1,6,'6');

 

CREATE TABLE `huafeng_db`.`t_scores` ( `score_id` int(11) NOT NULL AUTO_INCREMENT, `course_name` varchar(64) DEFAULT NULL, `score` double(3,2) DEFAULT NULL, `student_id` int(11) DEFAULT NULL,

 PRIMARY KEY (`score_id`),

 KEY `student_id` (`student_id`),

 CONSTRAINT `t_scores_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `t_students` (`student_id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

 

INSERT INTO `t_scores` (`score_id`, `course_name`, `score`, `student_id`) VALUES ('1', '语文', '90', '1');

INSERT INTO `t_scores` (`score_id`, `course_name`, `score`, `student_id`) VALUES ('2', '数学', '97', '1');

INSERT INTO `t_scores` (`score_id`, `course_name`, `score`, `student_id`) VALUES ('3', '英语', '95', '1');

INSERT INTO `t_scores` (`score_id`, `course_name`, `score`, `student_id`) VALUES ('4', '语文', '92', '2');

INSERT INTO `t_scores` (`score_id`, `course_name`, `score`, `student_id`) VALUES ('5', '数学', '100', '2');

INSERT INTO `t_scores` (`score_id`, `course_name`, `score`, `student_id`) VALUES ('6', '英语', '98', '2');

2、需求: 根据学生编号批量删除学生信息

DROP PROCEDURE IF EXISTS `p_del_studentInfo_bySeqNo`;

DELIMITER $$

CREATE PROCEDURE p_del_studentInfo_bySeqNo(IN arrayStr VARCHAR(1000),IN sSplit VARCHAR(10))

sql SECURITY INVOKER #允许其他用户运行BEGIN  DECLARE e_code INT DEFAULT 0;#初始化报错码为0

  DECLARE result VARCHAR(256) CHARACTER set utf8;#初始化返回结果,解决中文乱码问题

 

  DECLARE arrLength INT DEFAULT 0;

  DECLARE arrString VARCHAR(1000);

  DECLARE sStr VARCHAR(1000);

  DECLARE CONTINUE HANDLER FOR SQLEXCEPTioN SET e_code=1;#遇到错误后继续执行;(需要返回执行结果时用这个)

 

 

  START TRANSACTION;#启动事务

  SET arrLength = LENGTH(arrayStr) - LENGTH(REPLACE(arrayStr,sSplit,''));

  SET arrString = arrayStr;

  DROP TEMPORARY TABLE IF EXISTS list_tmp;

  create temporary table list_tmp(id VARCHAR(32));

 

  WHILE arrLength > 0 DO

   set sStr = substr(arrString,1,instr(arrString,sSplit)-1);      -- 得到分隔符前面的字符串 

   set arrString = substr(arrString,length(sStr)+length(sSplit)+1);   -- 得到分隔符后面的字符串 

   set arrLength = arrLength -1;

   set @str = trim(sStr);

   insert into list_tmp(id) values(@str);

   END WHILE;   IF row_count()=0 THEN 

    SET e_code = 1; 

    SET result = '请输入正确的参数'; 

   END IF;

 

  set @count = (SELECT count(1) FROM t_students s,list_tmp t WHERE s.seq_no = t.id);  IF @count >0 THEN

    DELETE FROM t_scores WHERE student_id in (SELECT s.student_id FROM t_students s,list_tmp t WHERE s.seq_no = t.id);

    DELETE FROM t_students WHERE student_id in (SELECT t.id FROM list_tmp t);  ELSE

     SET e_code = 1;

     SET result = '该学生不存在!';

  END IF;  IF e_code=1 THEN

    ROLLBACK; #回滚

  ELSE

    COMMIT;

    SET result = '该学生已被删除成功';

  END IF;

  SELECT result;

  DROP TEMPORARY TABLE IF EXISTS list_tmp;

END $$

DELIMITER ;

说明:在创建存储过程的时候,传入了两个参数,第一个代表要传入的数组字符串形式,第二个参数为以什么分割字符串。

声明初始化变量

DECLARE arrLength INT DEFAULT 0;

DECLARE arrString VARCHAR(1000);

DECLARE sStr VARCHAR(1000);

获取传入参数数组长度

SET arrLength = LENGTH(arrayStr) - LENGTH(REPLACE(arrayStr,sSplit,''));

SET arrString = arrayStr;

创建临时表

DROP TEMPORARY TABLE IF EXISTS list_tmp;

create temporary table list_tmp(id VARCHAR(32));

截取数组字符串并依次存入到临时表中供后面业务使用

WHILE arrLength > 0 DO

 set sStr = substr(arrString,1,instr(arrString,sSplit)-1);      -- 得到分隔符前面的字符串 

 set arrString = substr(arrString,length(sStr)+length(sSplit)+1);   -- 得到分隔符后面的字符串 

 set arrLength = arrLength -1;

 set @str = trim(sStr);

 insert into list_tmp(id) values(@str);

END WHILE;

关于怎么在mysql中存储数组问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: 怎么在mysql中存储数组

本文链接: https://www.lsjlt.com/news/55749.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在mysql中存储数组
    怎么在mysql中存储数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、创建数据库,用于实例:CREATE DATABASE...
    99+
    2022-10-18
  • if在数据库mysql存储中怎么判断
    这篇文章给大家分享的是有关if在数据库mysql存储中怎么判断的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.语法:IF 条件判断 THEN 结果   ...
    99+
    2023-06-14
  • mysql数组存储的步骤
    下文主要给大家带来mysql数组存储的步骤,希望这些内容能够带给大家实际用处,这也是我编辑mysql数组存储的步骤这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。    &nbs...
    99+
    2022-10-18
  • php数组怎么存储的
    PHP是一种广泛使用的编程语言,特别是在Web应用程序的开发中。而在PHP中,数组是一种非常常用的数据类型,用来存储一组相似的数据。那么,PHP数组是如何存储的呢?下面我们来详细了解一下。在PHP中,数组可以分为两种类型:索引数组和关联数组...
    99+
    2023-05-22
  • MySQL中怎么存储emoji
    MySQL中怎么存储emoji,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用 erlang 存储一些特殊字符串到 MySQL 的时候,...
    99+
    2022-10-18
  • 怎么在MySQL中存储文本和图片
    本篇文章为大家展示了怎么在MySQL中存储文本和图片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Oracle中大文本数据类型Clob  长文本...
    99+
    2022-10-18
  • 怎么在PHP中实现MySQL存储过程
    这篇文章主要介绍了怎么在PHP中实现MySQL存储过程的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在PHP中实现MySQL存储过程文章都会有所收获,下面我们一起来看看吧。一、MySQL存储过程简介MySQ...
    99+
    2023-07-05
  • php数组赋值是怎么存储
    PHP作为一种流行的后端编程语言,它的核心特性之一就是数组。数组是一种存储数据的集合类型,方便程序员在内存中管理和处理数据。在PHP中数组的特点是可以存储混合类型的数据,具有可变长度和索引等可操作特性。在PHP中,使用数组时必须理解数组的存...
    99+
    2023-05-22
  • 小程序怎么存储php数组
    在小程序开发中,我们有时需要从后台接口获取数据,这些数据可能会以php数组的形式返回给我们。那么,我们如何在小程序中存储这些php数组呢?本文将详细介绍如何在小程序中存储php数组。首先,我们需要了解php数组的形式在php中,数组是一种非...
    99+
    2023-05-23
  • Python爬虫之在MySQL中存储数据
    MySQL是一个开源的关系型数据库管理系统,被广泛应用于网站开发中的数据存储。在爬虫中,数据的存储是非常重要的一环。下面我们先简单介绍MySQL的基本知识,再讲一下在Python爬虫中如何使用MySQL进行数据存储。 MySQL基本概念 数...
    99+
    2023-10-09
    数据库 mysql python
  • mysql中怎么存储二进制数据流
    mysql中怎么存储二进制数据流,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。以下即为范例代码 --- 按照说明编译即可用,稍...
    99+
    2022-10-18
  • MYSQL中存储过程和函数怎么写
    这篇文章将为大家详细讲解有关MYSQL中存储过程和函数怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是存储过程简单的说,就是一组SQL语句集,功能强大,可以实现...
    99+
    2022-10-18
  • Python中怎么操作MySQL存储
    Python中怎么操作MySQL存储,这些你都会了吗?,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 准备工作在开始之前,请确保已经安装好了MySQL数据库并保证它能正常运...
    99+
    2023-06-17
  • 怎么在mysql中查看存储过程的状态
    在mysql中查询存储过程状态方法:1.启动mysql;2.登录mysql数据库;3.进入数据表;4.执行命令查看状态;具体步骤如下:首先,在命令行中启动mysql服务;service mysql start mysql服务启动后,输入用户...
    99+
    2022-10-25
  • 怎么在mysql存储过程中使用case语句
    今天就跟大家聊聊有关怎么在mysql存储过程中使用case语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。除了if语句,mysql提供了一个替代的...
    99+
    2022-10-18
  • 怎么在mysql存储过程中返回多个值
    本篇文章为大家展示了怎么在mysql存储过程中返回多个值,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mysql存储函数只返回一个值。要开发返回多个值的存储过程,需...
    99+
    2022-10-18
  • 如何将PHP数组存储在Spring容器中?
    Spring是一个流行的Java框架,它提供了一个容器来管理应用程序中的对象。Spring容器可以帮助我们管理对象的生命周期,并提供依赖注入的功能。在这篇文章中,我们将探讨如何将PHP数组存储在Spring容器中。 首先,我们需要使用Sp...
    99+
    2023-06-19
    spring 数组 容器
  • mysql中存储过程和存储函数指的是什么
    小编给大家分享一下mysql中存储过程和存储函数指的是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!在mysql中,存储过程和存储函数都是数据库中定义的一些SQL语句的集合。其中,存储函数...
    99+
    2022-10-18
  • MySQL中怎么更改数据库数据存储目录
    MySQL中怎么更改数据库数据存储目录,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1:确认MySQL数据库存储目录[root@DB-Se...
    99+
    2022-10-18
  • 怎么理解MYSQL数据类型存储中数值型
    怎么理解MYSQL数据类型存储中数值型,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。探索MYSQL 数值类型的存储,以及解读方...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作