MySQL - 如果满足条件,则向行添加一个或多个文本
MySQL - Add text or texts to a row if conditions are satisfied
对不起,如果问题很基础,我正在学习MySQL。
假设我有这样一个 table:
+---+---+-----+
|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
函数被调用一次并且 return 只有一个值。如果两列都满足条件,如何将此代码更改为 return 所有列(第 3 行)?谢谢。
对不起,如果问题很基础,我正在学习MySQL。
假设我有这样一个 table:
+---+---+-----+
|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
函数被调用一次并且 return 只有一个值。如果两列都满足条件,如何将此代码更改为 return 所有列(第 3 行)?谢谢。