26

first middle maidenaフィールドとlastnameフィールドを連結し、それを使用して名前が付けられた単一のフィールドを更新しようとしています。fullname

ユーザーごとに、これら4つのフィールドの任意の組み合わせを入力できます。0からすべて4まで。ただし、各名前の間に1つのスペースが必要です(複数のスペースではありません)。

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

2 に答える 2

45

MySQL has 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

さらなる応用

NULLしたがって、フィールドのコンマを取得できないため、将来この関数を使用して小さな CSV リストを作成する場合は注意してください。COALESCE(column, '')null 許容列ごとにラッパーを実行する必要があります。

于 2012-12-04T21:49:13.313 に答える