gpt4 book ai didi

mysql - 如何在 MySQL 中组合互斥列

转载 作者:可可西里 更新时间:2023-11-01 07:17:43 26 4
gpt4 key购买 nike

我有一个包含多个互斥列的数据库(不要问我为什么,有人那样创建它。叹息)。下面是一个例子。

-------------------------------------------
| ID | BLACK | WHITE | RED | GREEN | BLUE |
-------------------------------------------
| 1 | 1 | 0 | 0 | 0 | 0 |
-------------------------------------------
| 2 | 0 | 0 | 1 | 0 | 0 |
-------------------------------------------
| 3 | 0 | 1 | 0 | 0 | 0 |
-------------------------------------------

好吧,你明白了,它包含数千条记录。现在,我如何将它组合成一个“COLOR”列。如下所示。

--------------
| ID | COLOR |
--------------
| 1 | BLACK |
--------------
| 2 | RED |
--------------
| 3 | WHITE |
--------------

我现在能想到的就是做其中的5个

UPDATE table SET COLOR = 'BLACK' WHERE BLACK = 1

哦,我忘了说,我目前正在处理的表包含至少 15 个互斥列!有没有更简单的方法可以做到这一点?

编辑
将颜色更改为颜色

最佳答案

使用 case-expression,如这个缩写示例所示:

update table
set color=
case
when black then "black"
when red then "red"
when blue then "blue"
end;

这是一个 sqlfiddle

关于mysql - 如何在 MySQL 中组合互斥列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37783830/

26 4 0