mysql 5.7 存储过程的定义

最近做统计报表,一个数据展示,需要查询mysql,但是如果使用left join 这种语句发现太麻烦了
还是写存储过程吧
之前发过几篇文章编写存储过程,但是真的运行起来发现有各种各样的问题
所以今天也算是巩固也算是对新的坑的一个填补

相关文章:https://blog.csdn.net/datouniao1/article/details/79315198

存储过程结构定义

这样写对吗:

DROP PROCEDURE IF EXISTS PR_SLV;
CREATE PROCEDURE PR_SLV()
BEGINDECLARE myday varchar(32);
END;

一个最为简单的,我们运行查看:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

这样的一个错误,我检查我的语句发现没有问题啊
第三行,定义一个变量,怎么会出现问题
原因我们定义的时候需要告诉mysql 上面执行的语句是一体的 是一个存储过程
怎么告诉mysql

DROP PROCEDURE IF EXISTS PR_SLV;
delimiter //
CREATE PROCEDURE PR_SLV()
BEGINDECLARE myday varchar(32);
END;
//

加上上面红色框中的内网,就可以告诉mysql 我要定义一个存储过程了,这个里面的代码是一体的,你不要分开执行啊
我们再执行试一下

mysql中的三目运算

java写多了,我们中认为三目运算时这样的 :1==2?"":3
mysql 中的三目运算时这样的
IF(expr1,expr2,expr3)
expr1 是 表达式 如果为true 取值expr2 如果为false 或者为NULL 取值为 expr3
例如:

                 INSERT INTO hx_bigdata_pie(pname,pvalue,porder,ptype,addtime,ptaxno) values(right(myday,5),IF(myjshj,myjshj,'0'),IF(myhjse,myhjse,'0'),'lastten',CURDATE(),ptaxno);

mysql 中字符串截取

right(str,length) left(str,length)

right 从右边开始 取出长度为length的字符串
left 从左边开始 取出长度为length的字符串

MYsql当前日期

CURDATE()
日期减:Date_sub(CURDATE(),INTERVAL id DAY)

最终存储过程如下:

DROP PROCEDURE IF EXISTS PR_MULTI;
delimiter //
CREATE PROCEDURE PR_MULTI(ptaxno VARCHAR(50))
BEGINDECLARE myday varchar(32); DECLARE myjshj varchar(32); DECLARE myhjse varchar(32); DECLARE myse varchar(32); DECLARE done INT DEFAULT FALSE;DECLARE myCursor CURSOR FOR (select Date_sub(CURDATE(),INTERVAL id DAY) as dates from hx_row limit 7);DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;  delete from hx_bigdata_pie where ptype='lastten';OPEN myCursor; myLoop: LOOP FETCH myCursor into myday;IF done=1 THENLEAVE myLoop; -- 结束循环  END IF;select sum(jshj) into myjshj from hx_main where DATE_FORMAT(kpdate,'%Y-%m-%d')=myday and xsh_taxno=ptaxno;select sum(hjse) into myhjse from hx_main where DATE_FORMAT(kpdate,'%Y-%m-%d')=myday and xsh_taxno=ptaxno;INSERT INTO hx_bigdata_pie(pname,pvalue,porder,ptype,addtime,ptaxno) values(right(myday,5),IF(myjshj,myjshj,'0'),IF(myhjse,myhjse,'0'),'lastten',CURDATE(),ptaxno);END LOOP myLoop; -- 结束自定义循环体 CLOSE myCursor;select * from hx_bigdata_pie where ptype='lastten' order by id desc limit 7;
END;
//

总结: 上面是对存储过程的应该注意的点,以及新了解到的知识的一个记录

希望对你有所帮助

mysql存储过程分析相关推荐

  1. mysql声明存储过程_MySQL 声明变量及存储过程分析

    声明变量 设置全局变量 set @a='一个新变量'; 在函数和储存过程中使用的变量declear declear a int unsigned default 1; 这种变量需要设置变量类型 而且只 ...

  2. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

  3. mysql配置文件没有spring_spring cloud config使用mysql存储配置文件

    spring cloud config使用mysql存储配置文件 1.结构图 2.pom.xml: 4.0.0 com.didispace config-server-db 1.0.0 jar con ...

  4. mysql存储引擎静态表_MySQL存储引擎(表类型)的选择

    一.MySQL存储引擎概述 MySQL与多数数据库不同的是包含存储引擎这一特性,用户可以根据应用的需要选择合适的存储引擎来使存储和索引数据,以及是否使用事务等.MySQL5.0支持的存储引擎包括MyI ...

  5. MySQL存储写入速度慢分析

    问题背景描述:在MySQL中执行SQL语句,比如insert,贼慢,明明可能也就只是一行数据的插入,数据量很小,但是耗费的时间却很多,为什么? 一.存储结构分析 MySQL存储结构图: 解析: 1.读 ...

  6. mysql 存储中文问题

    mysql中的存储中文的问题解决方法 前些时候的做过一个实训是关于mvc的一个网站,其中遇到了很多问题因为时间的原因,把这些问题给省略掉了,最近又碰到了这些问题,这次无论怎样都要把问题解决掉一个是my ...

  7. mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

  8. mysql存储base64位用什么类型_了解什么是存储引擎引发的MySQL面试3连问

    引言 1.什么是存储引擎? 2.你设计表时使用什么存储引擎? 3.不同存储引擎分别适用于哪些场景? (0)什么是存储引擎? 在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着 ...

  9. 【超简单】MySQL存储引擎的选择与配置

    [超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力. ...

最新文章

  1. C# HttpHelper帮助类,真正的Httprequest请求时无视编码,无视证书,无视Cookie,网页抓取...
  2. ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
  3. 如何在Linux下统计高速网络中的流量
  4. 冰豹lua驱动设置_通过编写“猜数字”游戏学习 Lua | Linux 中国
  5. html div box,html – 为转换后的div添加box-shadow
  6. Redis学习之单机数据库(二)
  7. GitHub上值得收藏的100个精选前端项目!
  8. 设计一个处理两种类型地址的地址簿程序_短信平台的API接口都有哪些类型?
  9. Jquery框架核心部分例子 .
  10. Net设计模式实例之建造者模式(Builder Pattern)(1)
  11. 保密工作中非密计算机工具检查,【保密知识】别在保密工作面前耍“小聪明”哦~...
  12. android程序无法安装,安卓手机安装不了软件怎么办 手机无法安装软件原因和方法...
  13. 常用字典代码推荐标准
  14. Web UI设计基础
  15. 阿里云云计算工程师(ACP)认证证书及考试须知
  16. MySQL获取汉字的拼音首字母并过滤字母符号数字
  17. 常毅 华为计算机,华为路由器交换机配置.docx
  18. 【小知识】TVS瞬态抑制二极管与齐纳二极管(稳压管)的差异点分析
  19. golang封装mysql涉及到的包以及sqlx和gorm的区别
  20. InnoDB 存储引擎详细解析

热门文章

  1. 解决iframe 右边有空白的问题
  2. 在linux下修改用户密码
  3. 祝大家春节快乐身体健康
  4. 并发编程中的大坑:你的直觉有序性问题
  5. 在网易,我是怎样做项目管理的?
  6. 简洁好用的数据库表结构文档生成工具!
  7. 2021 年 5 月程序员工资统计,惨不忍睹。。。
  8. 深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!
  9. redis灵魂拷问:19图+11题带你面试通关
  10. 7个IntelliJ IDEA必备插件,让写代码像火箭一样飞起!