簡體   English   中英

MySQL 中有沒有辦法比較兩行相同的列結構並找出哪些列值發生了變化?

[英]Is there a way in MySQL to compare two rows of same column structure and find out which column values have changed?

我有一個問題,我需要比較相似列結構的兩個不同行並能夠找出哪些列值發生了變化?

表 A

ID
1 約翰 卡特
2 傑夫 德尼

表 B

ID
1 約翰尼 卡特
2 傑夫 鄧納姆

所需 Output

ID 首要的關鍵 OLD_VALUE NEW_VALUE
1 1 約翰 約翰尼
2 2 德尼 鄧納姆
SELECT id AS primary_key, 
       tableA.first_name AS old_value, 
       tableB.first_name AS new_value,
       'first name' AS altered_column
FROM tableA
JOIN tableB ON tableA.id = tableB.id 
           AND tableA.first_name <> tableB.first_name 

UNION ALL

SELECT id, 
       tableA.last_name, 
       tableB.last_name,
       'last name'
FROM tableA
JOIN tableB ON tableA.id = tableB.id 
           AND tableA.last_name <> tableB.last_name 

ORDER BY primary_key;

我不明白你想說什么。 您有兩個表,第一個是新表,第二個是舊表,您希望將新值與舊值進行比較,並將更改后的值保存到第三個表中。 正確的?

從第一個和第二個表中獲取所有值並逐個比較它們,並將此比較結果用作 if 語句的條件,並在該 if 語句中將那些不相等的值添加到第三個表中。

如果您需要代碼,請告訴我,以防您不明白我所說的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM