[Err] 1292 - Truncated incorrect DOUBLE value: ‘null‘

出现Truncated incorrect DOUBLE value: ‘null‘这个错误,在网上找了一些资料,基本是说语法不正确,例如修改数据的时候多个字段中间用的and,而不是用的逗号等,最终未能在网上获取答案,最后一步一步分析发现是因为字段类型转换出错导致。

写SQL语句的时候一定要注意原字段的类型,否则可能出现一些意想不到的错误

具体信息如下:

[SQL]INSERT INTO y_gis0000_lin (
	gid,
	stnod
) SELECT
gid,
IF (stnod = 'null', NULL, stnod) as stnod
FROM
	temp_y_gis0000_lin

[Err] 1292 - Truncated incorrect DOUBLE value: 'null'

分析:

SELECT
gid,
IF (stnod = 'null', NULL, stnod) as stnod
FROM
    temp_y_gis0000_lin

正常

 

insert into y_gis0000_lin(gid,stnod) select 1,if(1=1, null,2)

正常

怀疑y_gis0000_lin#stnod字段类型不正确,经检查字段类型为int,字段正常,接着怀疑temp_y_gis0000_lin#stnode字段,发现该字段为int类型

当执行jinsert into table select xxx from xxx会报错,爆粗的原因是stnod='null'时,会对字段进行转换,int转varchar,导致语句报错,将temp_y_gis000_lin的stnod字段类型改为varchar就行了。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值