我可以为select查询中的每一行设置自定义CONCAT()吗?mysql
我有多行需要不同的concat函数。 这张桌子看起来像这样我可以为select查询中的每一行设置自定义CONCAT()吗?mysql,mysql,sql,Mysql,Sql,我有多行需要不同的concat函数。 这张桌子看起来像这样 A B C D E F ----------- 1 H E Y 2 T H E E R 3 W O R D L SELECT *, CONCAT(B, C, D) AS G FROM table 我想添加另一列,其中包含单词concatenated,我是这样做的 A B C D E F ----------- 1 H E Y 2 T H E E R 3 W O R D L SELECT *, CONCAT(B, C, D) AS
A B C D E F
-----------
1 H E Y
2 T H E E R
3 W O R D L
SELECT *, CONCAT(B, C, D) AS G FROM table
我想添加另一列,其中包含单词concatenated,我是这样做的
A B C D E F
-----------
1 H E Y
2 T H E E R
3 W O R D L
SELECT *, CONCAT(B, C, D) AS G FROM table
很明显,它又回来了
A B C D E F G
-------------
1 H E Y HEY
2 T H E E R THE
3 W O R D L WOR
有没有一种方法可以达到预期的效果
A B C D E F G
-------------
1 H E Y HEY
2 T H E E R THERE
3 W O R D L WORLD
答案针对简化的问题:
如何将这3条select语句组合成1条
SELECT *, CONCAT(C, B, E, D, F) AS G FROM table WHERE A = 1;
SELECT *, CONCAT(G, C, D, B, E, F) AS G FROM table WHERE A = 2;
SELECT *, CONCAT(D, E, F, C, B) AS G FROM table WHERE A = 3;
或者,您可以使用UNION
组合单独的查询:
SELECT *, CONCAT(C, B, E, D, F) AS G
FROM table
WHERE A = 1
UNION
SELECT *, CONCAT(C, D, B, E, F) AS G
FROM table
WHERE A = 2
UNION
SELECT *, CONCAT(D, E, F, C, B) AS G
FROM table
WHERE A = 3
<代码>修剪(CONTAT(B,C,D,E,F))< /代码>?空白列是空的还是空字符串?你们想按那个顺序从R开始,但从W O R L D第3行开始的世界在例1,2和3中是不同的。请precise@RickyRoller你怎么知道他们的顺序?如果我们不知道算法应该是什么,我们就无法编写查询。无论条件是什么,您都应该能够使用
if
或CASE
来表达它。