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
)
相关推荐
随便做点啥1 小时前
4090 8卡服务器 - Qwen3.6-27B-AWQ 完整压测报告 (V2.0)
服务器·经验分享
码不停蹄的玄黓1 小时前
MySQL索引类型
数据库·mysql
是Yu欸1 小时前
抓取ChatGPT大模型回答并做品牌曝光分析
人工智能·经验分享·chatgpt·大模型·亮数据·brightdata
louiseailife1 小时前
金融级智能体平台技术要求:审计追溯、私有化部署与容错机制
经验分享
zhz52141 小时前
Docker 部署 MongoDB / MySQL / PostgreSQL 安全加固实录:TLS 双向认证、双因素鉴别与审计
mysql·mongodb·docker·postgresql·等保
dozenyaoyida1 小时前
RISC-V嵌入式开发:彻底解决“undefined reference to isatty“错误全攻略
经验分享·c·cmake·嵌入式开发·isatty·没有定义问题
tongyiixiaohuang2 小时前
MySQL与钉钉数据同步的灵活高效方案详解
android·mysql·钉钉
Gauss松鼠会2 小时前
GaussDB(DWS) SQL性能问题案例集
java·数据库·经验分享·spring boot·后端·sql·gaussdb
天竺鼠不该去劝架2 小时前
金融智能体实战场景:客服、风控、投研与知识库系统架构分析
经验分享
程序猿乐锅2 小时前
【MySQL | 第二篇】: 函数、约束、多表查询和事务
android·数据库·mysql