当前位置: 首页 > news >正文

mysql中数据不存在却查询到记录?

前言

首先看下面的查询语种

select * from AudioKnowledgeChatInfo where AudioId=297795550566600706;

查询结果如下 

 看到上面的查询结果,是不是一脸懵?这audioId明显不对啊,怎么查询到了?

原因剖析

首先我们来看看数据库表结构

可以看到,表中AudioId定义是varchar(50),但是查询sql中传入的是数字,很显然这可能是涉及到mysql的隐式类型转换问题了。我们知道mysql在进行字段查询的时候,varchar和int,bigint的比较时,会把varchar类型转换成对应的int或者bigint,这时可能会造成精度丢失,比较不准确问题。

我们把上面的sql修改下

select * from AudioKnowledgeChatInfo where AudioId='297795550566600706';

再次查询下,发现查询不到数据了。

总结

mysql的类型隐式转换,会导致索引失效问题、数据比对异常等问题,所以在表结构设计以及sql编写的时候还是要多加注意,避免这种错误。


http://www.mrgr.cn/news/70467.html

相关文章:

  • 小程序基础:1-起手式
  • 20221403郑骁恒实验3-2
  • Python学习——猜拳小游戏
  • Docker1:认识docker、在Linux中安装docker
  • pubspec.yaml
  • Spring Security 中的 UserDetailsService(获取用户详细信息)
  • 数学与统计计算:Python math 与 statistics库基础教程
  • ima.copilot-腾讯智能工作台
  • Android 各个版本授予应用信息权限及单次弹窗确认权限
  • 每日算法练习
  • 海南华志亿星电子商务有限公司是真的吗?
  • 如何加密源代码?十条策略教你源代码防泄漏
  • 三种读取配置文件的方式
  • 基于卷积神经网络的桃子叶片病虫害识别与防治系统,vgg16,resnet,swintransformer,模型融合(pytorch框架,python代码)
  • Linux网络的基本设置
  • 为什么白帽SEO比黑帽SEO更值得坚持?
  • 大顶堆的基本操作
  • vivado+modelsim: xxx is not a function name
  • 吃透红利!AI绘画变现方法汇总|变现方式:哪一种最适合你?方法加实践,小白也能上手赚钱!
  • 创新体验触手可及 紫光展锐携手影目科技推出AI眼镜开放平台
  • 软件测试基础二十一(接口测试 数据库相关)
  • 解决编译 fast-lio-lc 算法时遇到的error方法
  • 2023年09月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
  • 过程自动化的新黄金标准:Ethernet-APL
  • 多点支撑:滚珠导轨的均匀分布优势!
  • QT栅格布局的妙用