前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >>>技术应用:MySQL查询出现:Query was empty

>>技术应用:MySQL查询出现:Query was empty

作者头像
艾特
发布2023-10-10 14:26:47
4370
发布2023-10-10 14:26:47
一、问题出现

今日同事那边暴露出来一个错误,然后截图如下:

在这里插入图片描述
在这里插入图片描述

根据问题出现的原因,大体意思是查询是空或无效的 SQL 语句或SQL 语句为空,根据截图自己也百度了下具体的问题,意思差多不,但是还是不知道SQL语句为啥为空,然后根据接口对应的SQL,然后一步步去解析问题出现的原因。

二、问题出现的可能性猜测

根据网上搜寻的答案,大体上有下面几种可能: 1、SQL不存在; 2、MyBatis批量修改出现mysql的SQL不存在,使用的是模版QL; 3、mysql中数据类型decimal没有设置默认值,且在执行过程中容易出现NPE;

三、问题核对

核对了上述几种情况,发现我这边字段类型使用的是decimal,但是不足以造成这种情况,已经核对了SQL脚本正确且已经形成,因为在另一个项目中也是这种情况,并没有造成Query was empty,此时排除1。当前项目中并没有使用到MyBatis,而是使用的Spring JdbcTemplate,所以也排除了2。针对3这种情况,我这边的的确确是使用的这种数据类型,但在另外一个项目也正常显示,我把SQL脚本放到数据库也是可以正常显示数据,所以也排除了这个3。

四、具体原因分析

那具体是什么原因呢?后来了解到,前端在调用接口时,将数据接口调用一次之后存储到了redis,然后每次读取接口并不是实时从项目中获取,而是读取的redis中的数据,而此时数据库中的SQL模版我这边已经替换掉了,但是redis并没有更新,导致找不到SQL模版。

五、解决办法

解决办法:清理掉redis的数据,重新调取接口即可。

六、参考资料

参考资料: 1、https://blog.csdn.net/qq_38776922/article/details/78522365 2、https://www.php.cn/mysql-tutorials-72530.html 3、https://blog.csdn.net/weixin_41751625/article/details/79465160 4、https://blog.csdn.net/u012373281/article/details/109530924 5、https://blog.csdn.net/java_zhangshuai/article/details/98077548

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、问题出现
  • 二、问题出现的可能性猜测
  • 三、问题核对
  • 四、具体原因分析
  • 五、解决办法
  • 六、参考资料
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档