Mysql中 begin..end使用遇到的坑

Mysql中 begin..end使用遇到的坑

今天在用 Navicat 连接 mysql查询的时候,遇到了一个问题,如下代码块中所示:

BEGIN

declare start_time datetime default '2021-05-06 00:00:00';
declare end_time datetime default '2021-05-07 00:00:00';



# 计算实体类店铺客单价 
SELECT IFNULL(ROUND(

( SELECT sum( spu_amount_all ) / 100 FROM test_obp_data.data_user_order_goods WHERE pay_time BETWEEN start_time AND end_time AND shop_type != 3 and  biz_type = 1 AND sub_biz_type = 101 AND delete_flag = 0)
 / 
 ( SELECT count( id ) FROM test_obp_data.data_user_order_goods WHERE pay_time BETWEEN  start_time AND end_time  AND shop_type != 3 and  biz_type = 1 AND sub_biz_type = 101 AND delete_flag = 0),
2), 0) as money;

END

如图,下面我在mysql中执行了这段sql,本来是想要查询店铺订单的客单价的,然后在执行sql的过程中,抛了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 'declare start_time datetime default '2021-05-06 00:00:00'' at line 3 这个异常告诉我sql语法错误
在这里插入图片描述
开始我一直以为是自己在定义局部变量的时候,出了问题。

后来发现以上语句在触发器或者存储过程中是可以正确执行的。

查看相关文档和网上资料中得知:

通常begin-end用于定义一组语句块,在各大数据库中的客户端工具中可直接调用,但在mysql中不可用。

begin-end、流程控制语句、局部变量只能用于函数、存储过程内部、游标、触发器的定义内部。

如何创建存储过程,具体可以点击查看我的这篇博客哦~ 链接: https://blog.csdn.net/weixin_43865008/article/details/116451722?spm=1001.2014.3001.5501.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100676.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 图片爬虫

    图片爬虫参考视频学习,堆糖网图片爬虫"""1.URL2.模拟浏览器请求资源3.解析网页4.保存数据到本地"""importrequests#第三方库importurllib.parseimportjsonimportjsonpathurl=’https://www.duitang.com/napi/blog/list/by_search/?kw={}&s…

    2022年6月17日
    28
  • js的timeout_定时器有哪三种类型

    js的timeout_定时器有哪三种类型js中两种定时器setTimeout和setInterval开发工具与关键技术:DW、Js作者:李宥良撰写时间:2019年1月17日定时器的用法非常之普遍,一般动态变化的效果都会用到定时器;定时器分为setTimeout和setInterval下面是方法和描述计时器类型:一、setTimeout(对象)setTimeout()计时器:在载入后延迟指定时间后,去执行一次表达式,仅执…

    2022年10月4日
    0
  • 遇到问题–k8s–pod的状态为evicted

    遇到问题–k8s–pod的状态为evicted转载请注明出处:遇到问题–k8s–pod的状态为evicted遇到问题使用kubectlgetpods发现很多pod的状态为evicted。原因eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。多见于资源不足时导致的驱赶。更多详情参考kubernetes的eviction机制解决方案排查资源和异常原因,防止新…

    2022年5月17日
    61
  • 全球首款AI芯片_全球AI五强

    全球首款AI芯片_全球AI五强前言你一定听说过CPU、GPU,但是TPU、VPU、NPU、XPU…等等其他字母开头的“xPU”呢?AI概念在几年前火爆全球,科技巨头们纷纷投入AI芯片的研发,小公司也致力于提出概念靠AI浪潮融资,为了快速在AI市场上立足,也为了让市场和用户能记住自家的产品,各家在芯片命名方面都下了点功夫,既要独特,又要和公司产品契合,还要朗朗上口,也要容易让人记住。前文所提到的“xPU”的命名方式就深受各大厂商的喜爱。本文就从字母A到Z来盘点一下目前各种“xPU”命名AI芯片,以及芯片行业里的各种“xPU

    2022年10月28日
    0
  • H5页面架设教程_服务器架设教程

    H5页面架设教程_服务器架设教程H5页面架设教程

    2022年4月20日
    102
  • idea激活码在哪输入2022【2022.01最新】2022.02.03

    (idea激活码在哪输入2022)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlCJ…

    2022年3月31日
    226

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号