MySQL-如果满足条件,则将文本添加到行中
对不起,如果问题是基本的,我正在学习MySQL 假设我有一张这样的桌子:MySQL-如果满足条件,则将文本添加到行中,mysql,concat,string-concatenation,Mysql,Concat,String Concatenation,对不起,如果问题是基本的,我正在学习MySQL 假设我有一张这样的桌子: +---+---+-----+ |A |B |Con | +---+---+-----+ |3 |3 | | |2 |3 | | |3 |2 | | |2 |2 | | +---+---+-----+ 我想根据一个条件更新Con列,如果列小于3,就说添加列名。如果满足某个条件,我希望使用concat函数向列中添加文本,而不是编写每个条件: update 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
但是,这当然不起作用,因为
case
函数只调用一次,并且只返回一个值。如果两列都满足条件,如何更改此代码以返回所有列(第三行)?谢谢。你在找这样的东西吗
更新表1
设置con=CONCAT(当A<3然后“A”ELSE“结束时,
如果B<3,则“B”或“结束”);
这是一个演示
一个更简洁的版本,它保留了
空值
(如果需要的话)
更新表1
设置con=NULLIF(CONCAT(如果(A<3,'A',''),如果(B<3,'B',''),'');
这是一个演示似乎是的SQL变体。
+---+---+-----+
|A |B |Con |
+---+---+-----+
|3 |3 | |
|2 |3 |A |
|3 |2 |B |
|2 |2 |A B |
+---+---+-----+