MySQL同表不同字段互相替换

日常项目中常见表中两个字段有一些数据存值相反导致业务错误,这个时候需要脚本执行把数据替换。

小编下面的sql语句是把test表中员工编号和员工编码存在错误的数据替换,错误数据的条件是员工编码存的员工姓名,员工姓名存的员工编码。这时候用到了regexp这个函数,判断字段里是否是汉字还是数值,是数字返回0汉字返回1,下面是脚本

sql 复制代码
UPDATE test a,
 test b
SET a.USER_NO = b.USER_NO_NAME,
 a.USER_NO_NAME = b.USER_NO
WHERE
	a.id = b.id
AND a.id IN (
	SELECT
		id
	FROM
		(
			SELECT
				id,
				(
					USER_NO_NAME REGEXP '[^0-9.]'
				) AS data_flag,
				USER_NO_NAME
			FROM
				test
		) a
	WHERE
		data_flag = 0
)
相关推荐
ywl47081208743 分钟前
Mysql 平衡二叉树、红黑树、B树、B+树区别以及应用场景(五)
数据库·b树·mysql
汇策研习社1 小时前
StdDev标准差指标深度解析:量化市场波动的核心工具
大数据·经验分享·金融·区块链·fastbull
作陪2 小时前
小白也能看懂的 SQL 零基础教程:从关系模型到事务全解
mysql
ClouGence4 小时前
MySQL 到 StarRocks 数据迁移同步:同步方案与实践指南
数据库·mysql
BomanZQT5 小时前
NSK PSS2020N1D1435 精密滚珠丝杠技术手册
经验分享·规格说明书
田超凡5 小时前
深入理解MySQL_10 Explain的用法
mysql·java-ee
fofantasy6 小时前
NSK超重载高速静音滚珠丝杠技术解析
经验分享·规格说明书
德思特7 小时前
从靠天吃饭到科技种田,虹科&德思特与极飞科技聊聊农业无人机不迷路的 “硬核底气“
经验分享
cyforkk7 小时前
MySQL锁机制详解:从乐观锁到悲观锁
数据库·mysql
ShiXZ2138 小时前
指令集-SQL 常用指令速查手册
数据库·sql·mysql·oracle