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
)
相关推荐
前进的李工2 小时前
飞书企业知识库设计+后端高频八股
数据库·redis·后端·mysql·性能优化·飞书·rag
为思念酝酿的痛4 小时前
MySQL数据类型
数据库·mysql
程序员塔塔喵5 小时前
【MySQL篇|第二篇】慢SQL及其优化手段
sql·mysql·慢sql优化
为思念酝酿的痛6 小时前
MySQL数据库基础
数据库·mysql
恒锐丰科技林技术员7 小时前
EG27324 双通道驱动芯片:小封装下的高性能功率驱动方案
经验分享·嵌入式硬件·硬件工程
paopaokaka_luck7 小时前
智慧电玩店管理系统(空闲机台随机分配、游玩时长概率模拟、积分自动结算、积分兑换闭环、 ECharts经营分析、 腾讯地图选址)
java·人工智能·mysql·echarts·推荐算法
m0_719640877 小时前
2026年适合课题研究的具身智能实验室建设方案有哪些可参考?
经验分享·算法
*长铗归来*8 小时前
MySQL新学知识(三)MySQL 事件(EVENT)
数据库·mysql
Warolitbos8 小时前
【数据库】SQL进阶15题,窗口函数/索引/事务一页速查
数据库·sql·学习·mysql·面试
芯片智造9 小时前
NiFe镀层成分沿厚度方向的梯度是如何形成的?怎么消除?
经验分享