我有一个看起来像这样的表:
mysql> SELECT * FROM Colors;
╔════╦══════════╦════════╦════════╦════════╦════════╦════════╦════════╗
║ ID ║ USERNAME ║ RED ║ GREEN ║ YELLOW ║ BLUE ║ ORANGE ║ PURPLE ║
╠════╬══════════╬════════╬════════╬════════╬════════╬════════╬════════╣
║ 1 ║ joe ║ 1 ║ (null) ║ 1 ║ (null) ║ (null) ║ (null) ║
║ 2 ║ joe ║ 1 ║ (null) ║ (null) ║ (null) ║ 1 ║ (null) ║
║ 3 ║ bill ║ 1 ║ 1 ║ 1 ║ (null) ║ (null) ║ 1 ║
║ 4 ║ bill ║ (null) ║ 1 ║ (null) ║ 1 ║ (null) ║ (null) ║
║ 5 ║ bill ║ (null) ║ 1 ║ (null) ║ (null) ║ (null) ║ (null) ║
║ 6 ║ bob ║ (null) ║ (null) ║ (null) ║ 1 ║ (null) ║ (null) ║
║ 7 ║ bob ║ (null) ║ (null) ║ (null) ║ (null) ║ (null) ║ 1 ║
║ 8 ║ bob ║ 1 ║ (null) ║ (null) ║ (null) ║ (null) ║ (null) ║
╚════╩══════════╩════════╩════════╩════════╩════════╩════════╩════════╝
我想运行一个UPDATE和DELETE来查找和删除重复项并合并记录,以便我们以此结果作为结果.
mysql> SELECT * FROM Colors;
╔════╦══════════╦═════╦════════╦════════╦════════╦════════╦════════╗
║ ID ║ USERNAME ║ RED ║ GREEN ║ YELLOW ║ BLUE ║ ORANGE ║ PURPLE ║
╠════╬══════════╬═════╬════════╬════════╬════════╬════════╬════════╣
║ 1 ║ joe ║ 1 ║ (null) ║ 1 ║ (null) ║ 1 ║ (null) ║
║ 3 ║ bill ║ 1 ║ 1 ║ 1 ║ 1 ║ (null) ║ 1 ║
║ 6 ║ bob ║ 1 ║ (null) ║ (null) ║ 1 ║ (null) ║ 1 ║
╚════╩══════════╩═════╩════════╩════════╩════════╩════════╩════════╝
我知道我可以用脚本轻松地做到这一点,但为了更好地学习和理解MySQL,我想学习如何使用纯SQL来做到这一点.