Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以为select查询中的每一行设置自定义CONCAT()吗?mysql_Mysql_Sql - Fatal编程技术网

我可以为select查询中的每一行设置自定义CONCAT()吗?mysql

我可以为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

我有多行需要不同的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 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
来表达它。