我正在尝试连接a first middle maiden和lastname字段,并使用它来更新命名的单个字段fullname
对于每个用户,可以填充这4个字段的任何组合.从0到全部4.但是我还需要在每个名称之间留出一个空格(不是多个空格).
UPDATE nameTable SET fullname = CONCAT(first, middle, maiden, last);
Run Code Online (Sandbox Code Playgroud)
aka*_*tos 38
MySQL有CONCAT_WS- 与分隔符连接
CONCAT_WS(' ', first, middle, maiden, last);
Run Code Online (Sandbox Code Playgroud)
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, '')围绕每个可空列进行包装.
小智 6
空字符串解决方案
TRIM(BOTH ' ' FROM CONCAT_WS(' ', first, middle, maiden, last))
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_trim