锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

MySQL提示Truncated incorrect DOUBLE value解决方法

时间:2023-06-16 01:37:01 kum连接器插头

最近在使用springmvc jdbc这个问题发生在查询项目中,因为这个框架使用较少,我以为是我sql传参或者jdbc后来,研究发现这不是mysql问题是字符串拼接,

开始我的sql是这样的:

String sql = "update exam_"   examid   "_signup_sub               SET KD_ID = "   examSiteCode   "              WHERE SIGNUPID in              (SELECT a.SIGNUPID from              (select SIGNUPID from exam_"   examid   "_signup where BMDS = "   examRegion   " and BKZY = "   examProfess   " and SUBJECTS = "   subjectCode   ") a)";
  1. ///这是改正后的拼接方法

  2. String sql = "update exam_"   examid   "_signup_sub               SET KD_ID = "   examSiteCode   "              WHERE SIGNUPID in                (SELECT a.SIGNUPID from                 (select SIGNUPID from exam_"   examid   "_signup where BMDS = '"   examRegion   "' and BKZY = '"   examProfess   "' and SUBJECTS = '"   subjectCode   "') a)";


看这个两个sql最后一行查询为asql语句
where之后的查询条件之一是where BMDS = " examRegion " and BKZY = " examProfess " and SUBJECTS = " subjectCode "

一个是 BMDS = '" examRegion "' and BKZY = '" examProfess "' and SUBJECTS = '" subjectCode "'

区别在于第一个查询条件运行BMDS =第二个是001BMDS = '001'

假如这些查询条件字段是数字类型,那就没什么好说的了,但这里的字段都是字符类型,
在msql中,如果非要把数字当查询条件传给字符型,msql如果整个字段的前几个字符不能转换为数字,则截取该字段的前几个值作为查询条件,mysql这个警告就会出来Truncated incorrect DOUBLE value”。
总之,mysql查询时,数据库表中的字段是什么类型,最好在查询条件下传输。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章