当前位置: 首页 > 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

相关文章:

  • 关于Unity使用LookAt时为什么不能旋转
  • 解决msvcr100.dll丢失的方法,5个实测可靠的解决方法
  • SharePoint Online共享链接的参数是做什么的?
  • C++ 关于基于范围的for循环(C++11) 语法 详解
  • Python | Leetcode Python题解之第557题反转字符串中的单词III
  • 网站小程序app怎么查有没有备案?
  • 数学与统计计算: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栅格布局的妙用