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
)
相关推荐
a34funny16 分钟前
Python高级之操作Mysql
python·mysql·adb
优化控制仿真模型30 分钟前
【最新考研408】考研计算机408统考历年真题及答案解析PDF电子版(2009-2026年)
经验分享·pdf
一个人旅程~39 分钟前
电脑里要装三系统win7/win11/linux,按照什么顺序和格式安装才不会导致启动表出问题?
linux·windows·经验分享·电脑
Bert.Cai12 小时前
MySQL DML简介
数据库·mysql
唐山大方汇中仪表12 小时前
自动化炼钢核心——副枪探头
经验分享
M ? A12 小时前
Vue 动态组件在 React 中,VuReact 会如何实现?
前端·javascript·vue.js·经验分享·react.js·面试·vureact
考虑考虑14 小时前
SQL语句中的order by可能造成时间重复
数据库·后端·mysql
SPC的存折15 小时前
D在 Alpine 容器中手动搭建 Discuz 全攻略(包含镜像一键部署脚本,可直接用)
linux·数据库·mysql·缓存
AgCl2315 小时前
MYSQL-6-函数与约束-3/17
android·数据库·mysql
junqiduhang15 小时前
Win11 MySQL 8.0 安装八步走
数据库·mysql