返回顶部
首页 > 资讯 > 数据库 >怎么在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://lsjlt.com/news/55749.html(转载时请注明来源链接)

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

猜你喜欢
  • 怎么在mysql中存储数组
    怎么在mysql中存储数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、创建数据库,用于实例:CREATE DATABASE...
    99+
    2024-04-02
  • mysql如何存储数组
    mysql 不支持直接存储数组,但有三种方法可以变相存储:json 列:使用 json 格式存储数组,适用于复杂嵌套数据结构。字符串序列化:将数组转换为字符串存储,适用于简单数组,访问或...
    99+
    2024-06-14
    mysql
  • if在数据库mysql存储中怎么判断
    这篇文章给大家分享的是有关if在数据库mysql存储中怎么判断的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.语法:IF 条件判断 THEN 结果   ...
    99+
    2023-06-14
  • 数组是如何在内存中存储的?
    数组在内存中顺序存储,每个元素占据连续地址,起始于数组首地址。 数组在内存中的存储 数组是一种数据结构,它存储了多个具有相同数据类型的元素。这些元素在内存中是连续存储的,就像一个列表一...
    99+
    2024-05-23
    内存 数组
  • php数组怎么存储的
    PHP是一种广泛使用的编程语言,特别是在Web应用程序的开发中。而在PHP中,数组是一种非常常用的数据类型,用来存储一组相似的数据。那么,PHP数组是如何存储的呢?下面我们来详细了解一下。在PHP中,数组可以分为两种类型:索引数组和关联数组...
    99+
    2023-05-22
  • mysql数组存储的步骤
    下文主要给大家带来mysql数组存储的步骤,希望这些内容能够带给大家实际用处,这也是我编辑mysql数组存储的步骤这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。    &nbs...
    99+
    2024-04-02
  • MySQL中怎么存储emoji
    MySQL中怎么存储emoji,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用 erlang 存储一些特殊字符串到 MySQL 的时候,...
    99+
    2024-04-02
  • java怎么删除存储数组
    在Java中,数组的大小是固定的,不能直接删除存储在数组中的元素。但是,可以通过创建一个新数组来模拟删除元素的操作。下面是一个简单的...
    99+
    2024-04-20
    java
  • 怎么在MySQL中存储文本和图片
    本篇文章为大家展示了怎么在MySQL中存储文本和图片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Oracle中大文本数据类型Clob  长文本...
    99+
    2024-04-02
  • 怎么在PHP中实现MySQL存储过程
    这篇文章主要介绍了怎么在PHP中实现MySQL存储过程的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在PHP中实现MySQL存储过程文章都会有所收获,下面我们一起来看看吧。一、MySQL存储过程简介MySQ...
    99+
    2023-07-05
  • Python爬虫之在MySQL中存储数据
    MySQL是一个开源的关系型数据库管理系统,被广泛应用于网站开发中的数据存储。在爬虫中,数据的存储是非常重要的一环。下面我们先简单介绍MySQL的基本知识,再讲一下在Python爬虫中如何使用MySQL进行数据存储。 MySQL基本概念 数...
    99+
    2023-10-09
    数据库 mysql python
  • php数组赋值是怎么存储
    PHP作为一种流行的后端编程语言,它的核心特性之一就是数组。数组是一种存储数据的集合类型,方便程序员在内存中管理和处理数据。在PHP中数组的特点是可以存储混合类型的数据,具有可变长度和索引等可操作特性。在PHP中,使用数组时必须理解数组的存...
    99+
    2023-05-22
  • 小程序怎么存储php数组
    在小程序开发中,我们有时需要从后台接口获取数据,这些数据可能会以php数组的形式返回给我们。那么,我们如何在小程序中存储这些php数组呢?本文将详细介绍如何在小程序中存储php数组。首先,我们需要了解php数组的形式在php中,数组是一种非...
    99+
    2023-05-23
  • mysql中null怎么存储的
    mysql 中 null 值表示未知或不存在,存储为一个 1 比特的位字段标记,位于每个列数据值末尾。这种存储方案高效地表示 null 值,只需 1 比特,允许快速检查,并减少存储空间。...
    99+
    2024-05-01
    mysql
  • 如何将PHP数组存储在Spring容器中?
    Spring是一个流行的Java框架,它提供了一个容器来管理应用程序中的对象。Spring容器可以帮助我们管理对象的生命周期,并提供依赖注入的功能。在这篇文章中,我们将探讨如何将PHP数组存储在Spring容器中。 首先,我们需要使用Sp...
    99+
    2023-06-19
    spring 数组 容器
  • mysql中怎么存储二进制数据流
    mysql中怎么存储二进制数据流,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。以下即为范例代码 --- 按照说明编译即可用,稍...
    99+
    2024-04-02
  • MYSQL中存储过程和函数怎么写
    这篇文章将为大家详细讲解有关MYSQL中存储过程和函数怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是存储过程简单的说,就是一组SQL语句集,功能强大,可以实现...
    99+
    2024-04-02
  • C语言中数据在内存中是怎么存储的
    本篇文章为大家展示了C语言中数据在内存中是怎么存储的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。数据类型常见的数据类型常见的数据类型字节char字符数据类型1short短整型2int整形4long...
    99+
    2023-06-22
  • 如何在Go语言中高效存储数组数据?
    Go语言中的数组是一种基本的数据结构,它可以存储一组相同类型的数据。但是,对于大型数组的存储和操作,可能会导致性能问题。本文将介绍如何在Go语言中高效存储数组数据。 一、使用切片 Go语言中的切片是一个动态数组,可以根据需要自动扩展和收缩。...
    99+
    2023-11-06
    索引 数组 存储
  • NumPy 数组在 PHP 中的存储方式有哪些?
    NumPy 数组是Python科学计算中最常用的数据结构之一,它提供了高效的多维数组操作功能。然而,在PHP中,我们也需要处理大量的数值数据,因此了解NumPy数组在PHP中的存储方式是非常重要的。本文将介绍NumPy数组在PHP中的存储方...
    99+
    2023-10-02
    数据类型 存储 numpy
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作