first
middle
maiden
とlast
の名前フィールドを連結して、fullname
という名前の単一のフィールドを更新しようとしています。
ユーザーごとに、これら4つのフィールドの任意の組み合わせを入力できます。 0から4まで。ただし、各名前の間に1つのスペースが必要です(複数のスペースではありません)。
UPDATE nameTable SET fullname = CONCAT(first, middle, maiden, last);
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, '')
ラッパーを実行する必要があります。
空の文字列ソリューションTRIM(BOTH ' ' FROM CONCAT_WS(' ', first, middle, maiden, last))
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_trim