Mysql-对比某表更新后不一致的数据

对比数据是常见的一种操作,而若对自己操作过的大量数据进行对比,未免耗时费力。以下Mysql语句为方便对比数据而记录,参考链接来自:
MySQL比较两个表不同的数据

使用以下条件可使用本sql语句查询对比:

  1. 已经明确更改了哪个/些字段的数据
  2. 更改前备份数据,才可进行对比操作
  3. 操作的数据表包含唯一标识(主键或组合主键)
SELECT
	* 
FROM
	(
	SELECT *,'原来' AS origin FROM table_name_before 
	-- 组合两个表的数据
	UNION ALL 
	SELECT *,'更改后' AS origin FROM table_name_after
	) A -- 起别名                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
GROUP BY
	id,					  -- 主键
	update_column	-- 更改了的值,可以写多个
HAVING
	count(*) = 1  -- 没有更改的数据group将会是2,不展示
ORDER BY				-- 进行排序,最为方便对比
	id ASC,
	origin ASC

你可能感兴趣的:(数据库,mysql)