将多个字段CONCAT到单个字段,单个间隔

时间:2012-12-04 21:39:41

标签: mysql concat

我正在尝试连接first middle maidenlast名称字段,并使用它来更新名为fullname <的单个字段/ p>

对于每个用户,可以填写这4个字段的任何组合。从0到全部4。 但是,我还需要在每个名称之间留一个空格(而不是多个空格)。

UPDATE nameTable SET fullname = CONCAT(first, middle, maiden, last);

2 个答案:

答案 0 :(得分:35)

MySQL有CONCAT_WS - 与分隔符

连接
CONCAT_WS(' ', first, middle, maiden, last);

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws

正如下面andr所指出的那样,请确保所有连接字段都包含NULL而不是空字符串(''),否则您将在输出中获得双倍空格。

小提琴:http://sqlfiddle.com/#!2/1fe83/1

进一步申请

因此,如果将来使用此功能制作一个小的CSV列表,请注意,因为您不会获得NULL字段的逗号。你必须围绕每个可以为空的列做一个COALESCE(column, '')包装。

答案 1 :(得分:3)

空字符串解决方案 TRIM(BOTH ' ' FROM CONCAT_WS(' ', first, middle, maiden, last))

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_trim