资讯详情

MySQL提示Truncated incorrect DOUBLE value解决方法

最近在使用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 "'

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

标签: kum连接器插头

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

锐单商城 - 一站式电子元器件采购平台