ERROR 1292 (22007): Truncated incorrect DOUBLE value: 'xx-xx'

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
Server version: 5.7.25-TiDB-v5.2.1 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

【概述】 场景 + 问题概述
遇到了一个问题insert select 的时候查询到结果为空,
报了个错 ERROR 1292 (22007): Truncated incorrect DOUBLE value: ‘新北-樊路’
INSERT INTO sg_wifi_router_client_distance_warn_statement
select logdate ,
b.companyid ,
e.name companyname ,
b.shopid ,
c.name shopname ,
linkman ,
linkman_tel ,
a.ucode ,
b.sn ,
c.creator_id ,
d.name creator_name ,
pre_num_cnt ,
pre_logdate ,
pre_gcj_longi ,
pre_gcj_lati ,
num_cnt ,
gcj_longi ,
gcj_lati ,
distance from sg_wifi_router_client_distance_warn a
left join ucode_dimension_table b on a.ucode = b.ucode left join db_spread.shop c on b.shopid = c.id left join db_spread.spread_user d on c.creator_id = d.id left join db_spread.company e on b.companyid = e.id where logdate = ‘2022-01-12’;

当数据表db_spread.spread_user 中又一条数据的name包含tab建的时候会报错

【应用框架及开发适配业务逻辑】

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】

【附件】 相关日志及监控(https://metricstool.pingcap.com/)


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1 个赞

能提供建表语句和可重现的sql语句么~

请问该字段是双精度浮点数么,你插入的字符串么,看报错像

看他说的是有 tab键 导致的

呃呃呃,不会吧,那有可能算bug了,这种insert select的方式应该会转义掉啊,我测试下,我4.0.14测试貌似是正常的,还是等他的具体表结构和步骤吧

1 个赞

字段和所插入数据类型不符

坐等楼主放出 重现脚本

只要随便建一下表就行了,你们可以试一下,我就是那个表里面有一条数据的字段内容包含了tab建,这张表之前是从hive同步过来的,我去看了原始数据里面就是以有tab建

4楼的大佬已经验证是正常的了。

我是5.2版本的,我把那条数据删掉就好了

查询是没有问题的,insert就会有问题,我的目标表只有distance是double,我试过把所有字段都改成varchar也是不行,出问题的是db_spread.spread_user 的name字段

您这可以给个最简单的复现步骤么,我这里直接insert是正常的,不知道是不是查询时会对转义这块有影响

没太明白,如果是double,输入中文字符串本来就不行

这种一半是类型不对

具体示例可以贴一下吗

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。