表结构如下:

Create Table: CREATE TABLE `test_t2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`customer_no` varchar(20) DEFAULT NULL,
`app_id` varchar(20) DEFAULT NULL,
`access_resource` varchar(20) DEFAULT NULL,
`status` varchar(10) DEFAULT NULL,
`ager` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8

语句如下:

UPDATE test_t2 t1 ,(
SELECT s.`customer_no`, s.`app_id`, s.`access_resource`, s.`status`, MAX(id) mxid
FROM test_t2 s
WHERE s.`status` = 0
GROUP BY s.`customer_no`, s.`app_id`, s.`access_resource`, s.`status`
HAVING COUNT(*) > 1
) t2
SET t1.`status` = 1
where t1.`customer_no` = t2.customer_no
AND t1.`app_id` = t2.app_id
AND t1.`access_resource` = t2.access_resource
AND t1.`status` = t2.status
and t1.`id` <> t2.mxid;

执行后,报错:
ERROR 1292 (22007): Truncated incorrect DOUBLE value: 'a'

原来test_t2表的status字段是varchar(10)

当set  t1.`status` = 1时,将‘a’转化为DOUBLE value处理,隐式转换失败,故报错。

解决方式:

修改测试表结构

update test_t2 set status='0' where status!='0';
alter table test_t2 modify status tinyint;

再次执行:

Query OK, 10 rows affected (0.29 sec)
Rows matched: 10  Changed: 10  Warnings: 0

再测试另外一种多表更新:

UPDATE test_t2 t1
INNER JOIN (
SELECT s.`customer_no`, s.`app_id`, s.`access_resource`, s.`status`, MAX(id) mxid
FROM test_t2 s
WHERE s.`status` = 0
GROUP BY s.`customer_no`, s.`app_id`, s.`access_resource`, s.`status`
HAVING COUNT(*) > 1
) t2 ON t1.`customer_no` = t2.customer_no
AND t1.`app_id` = t2.app_id
AND t1.`access_resource` = t2.access_resource
AND t1.`status` = t2.status
SET t1.`status` = 1
WHERE t1.`id` <> t2.mxid Query OK, 10 rows affected (0.00 sec)
Rows matched: 10 Changed: 10 Warnings: 0

这两句update语句都是实现了:将符合条件的记录的status置为1的功能

多表更新时碰到的 ERROR 1292 (22007)隐式转换错误的更多相关文章

  1. C# 中的隐式类型转换(运算时的隐式转换)和显示类型转换

    区别: 隐式转换失败编译会报错. 显示转换有可能精度丢失. 根据项目的编译设置,显示转换溢出可能会报错,如果设置溢出且未使用checked检查,运行时如果发生溢出会产出未知的计算结果. 在数字运算时, ...

  2. ERROR 1292(22007)

    ERROR 1292(22007) Table of Contents 1. 1292 1.1. 22007 1 1292   1.1 22007 错误信息 ERROR 1292 (22007): T ...

  3. 执行update语句mysql5.6报错ERROR 1292 (22007): Truncated incorrect DOUBLE value: '糖糖的坤大叔'

    执行修改语句update tbl_user_details set nickname=CONCAT("用户",yunva_id) where nickname = yunva_id ...

  4. ERROR 1292 (22007): Truncated incorrect DOUBLE value: 'asfsda1'

    mysql> UPDATE financial_sales_order SET ASSIGN_TIME = '2018-05-02 00:00:00' where CUSTOMER_ID=354 ...

  5. mysql中两表更新时产生的奇葩问题,产生死锁!

    如下一个两表更新语句 UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3 ...

  6. 有关使用phpstudy搭建sqli-lab环境搭建时发生Uncaught Error: Call to undefined function mysql_connect()错误

    文章更新于2020-1-30 问题描述 Uncaught Error: Call to undefined function mysql_connect() 分析 经查php手册可知 mysql_co ...

  7. 启动Eclipse时An internal error occurred during: "Initializing Java Tooling".错误

    解决方法一 重置窗口布局: windows > perspective > reset perspective 解决方法二: 如果上述方法不好使,采用下面的这种方法: 删除workspac ...

  8. SQL Server ->> 数据类型不一致比较时的隐式转换

    当使用操作符进行比较的时候,两边数据类型不一致的情况下,数据类型优先级别低的会往优先级别高的发生隐式转换.下面的参考链接是优先级别列表. 参考: Data Type Precedence (Trans ...

  9. Oracle :多表更新多个字段

    https://blog.csdn.net/funnyfu0101/article/details/52765235 总体原则:1)更新的时候一定要加where条件,否则必然引起该字段的所有记录更新 ...

随机推荐

  1. DOS下的安全空间

    我们需要直接向一段内存中写入内容: 这段内存空间不应存放系统或其他程序的数据或代码,否则写入操作很可能引发错误: DOS方式下,一般情况,0:200~0:2ff空间中没有系统或其他程序的数据或代码; ...

  2. 视觉slam十四讲

    对这个的学习一直都在,感觉到了这本书很强大呀!!! ch2---安装ubuntu:安装kdevelop. ch3---安装eigen3---几何模块:安装Pangolin可视化. ch4---安装So ...

  3. MVC之CodeFirst

    1.建立MVC项目>NuGet安装EF 2.建立模型: public class Blog { [Key] [DatabaseGenerated(DatabaseGeneratedOption. ...

  4. 5F - Coin Change

    Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We want to make c ...

  5. JAVA 8.20 游戏:四子连(Java&C++)

    (游戏:四子连 )四子连是一个两个人玩的棋盘游戏,在游戏中,玩家轮流将有颜色的棋子放在一个六行七列的垂直悬挂的网格中:         这个游戏的目的是在对手实现一行.一列或者一条对角线上有四个相同颜 ...

  6. hdu 1558 (线段相交+并查集) Segment set

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1558 题意是在坐标系中,当输入P(注意是大写,我当开始就wa成了小写)的时候输入一条线段的起点坐标和终点坐 ...

  7. JVM 体系结构概述 (一)

    一.jvm运行在操作系统之上的,它与硬件没有直接交互: 二.JVM体系结构概览 JVM的基本结构:类加载器.执行引擎.运行时数据区.本地方法接口: 过程:class文件 ----> 类加载器 - ...

  8. The valid characters are defined in RFC 7230 and RFC 3986问题

    这个问题困扰了我接近两天了!尼玛!网上搜了很多资料,有的给出了解决方案,然后下面的评论说按照楼主做的,没有成功,我一做也确实没有成功.设置了断点,一步一步跟进去看,还是没有头绪.不过有一点可以确认的是 ...

  9. Luogu 2577[ZJOI2005]午餐 - 动态规划

    Solution 啊... 我太菜了唔 不看题解是不可能的, 这辈子都不可能的. 首先一个队伍中排队轮到某个人的时间是递增的, 又要加上吃饭时间, 所以只能使吃饭时间递减, 才能满足最优,于是以吃饭时 ...

  10. eclipse打开出现Failed to create the java virtual machine

    低配伤不起呀... 这个问题经常是由于创建JAVA 虚拟机时,内存不足导致的,怎么办呢? 1.找到这么个文件:eclipse.ini(在哪?与ECLIPSE.EXE在一起,在一起...) 2.修改里面 ...