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
)
相关推荐
恒锐丰科技林技术员35 分钟前
SS6952T 单通道 H 桥电机驱动芯片:大电流电机一体化解决方案
经验分享·嵌入式硬件·硬件工程
2601_962065251 小时前
2.启动mysql容器
java·数据库·mysql
Ztt6666666662 小时前
太白壶以浅青为底,紫红垂下来才有神采
经验分享·笔记·其他·百度·微信公众平台
STQY燊桐启元(深圳)电子科技2 小时前
耐高温工况专项适配:相变陶瓷片如何突破高温工业设备散热瓶颈
经验分享·笔记·pcm
速德瑞仪器2 小时前
254nm不怕可见光,365nm却不行?紫外辐照计杂光干扰解析
经验分享·紫外辐照计
luj_17682 小时前
断舍离中的项目管理智慧
c语言·开发语言·c++·经验分享·算法
上海广测检测科技有限公司2 小时前
鼠标Anatel认证详解:巴西市场无线外设的射频合规要求
经验分享
Omics Pro2 小时前
整合多组学分析+生物医学发现!对话式多智能体AI
数据库·人工智能·mysql·机器学习·自然语言处理
STQY燊桐启元(深圳)电子科技3 小时前
工业物联网网关散热升级,相变陶瓷片解决微型设备积温过热难题
经验分享·笔记·pcm
firstacui3 小时前
Mysql调优
android·mysql·adb