【发布时间】:2015-07-09 14:29:42
【问题描述】:
对不起,如果问题是基本的,我正在学习 MySQL。
假设我有一张这样的桌子:
+---+---+-----+
|A |B |Con |
+---+---+-----+
|3 |3 | |
|2 |3 | |
|3 |2 | |
|2 |2 | |
+---+---+-----+
我想根据条件更新 Con 列,如果列小于 3,则添加列名。我想使用 concat 函数向列添加文本,而不是编写每个条件,如果满足条件:
update table
set Con =
case
when A < 3
then concat(' A ')
when B < 3
then concat(' B ')
end
所以,我想要这样的东西:
+---+---+-----+
|A |B |Con |
+---+---+-----+
|3 |3 | |
|2 |3 |A |
|3 |2 |B |
|2 |2 |A B |
+---+---+-----+
但是,这当然是行不通的,因为case 函数被调用一次并且只返回一个值。如果两列都满足条件,如何更改此代码以返回所有列(第 3 行)?谢谢。
【问题讨论】:
-
似乎是 FizzBuzz problem 的 SQL 变体。
标签: mysql concat string-concatenation