2016-03-23 6 views
0

私のテーブルには「会社」というフィールドがあり、一部のフィールドには会社名が記入されています。私はfirstname + lastnameでないものを埋める必要があります。これらは同じテーブルの他のフィールドです。firstnameとlastnameのフィールドを持つMySQLの更新会社のフィールド

使用する構文を理解するのに苦労しています。私はこのようなものを使いたいですが、私はその道を知っています。

UPDATE *「テーブル」からIF会社=「」WITH CONCAT(「」姓)

私はしかし、私は構文を見つけることができないと私は自分で探している、これは道オフになっている知っていますクライアントが首を呼吸している。私は開発者ではない。私はちょうどそれらを見つけることができない数百の例があることを確かめる。私はこれがあなた/ガールの中にはシンプルであることを知っています。

ありがとうございます。

答えて

1
UPDATE `Table` SET company = IFNULL(company,CONCAT(firstname,' ',lastname)); 

sqlfiddle

この1つは、ブランク/空の文字列をカバーする必要があります。

UPDATE `table` SET company = CONCAT(firstname,' ',lastname) WHERE company IS NULL OR company = ''; 
+0

おかげでも、私はフィールドが、私は「」 – illcrx

+0

ためにNULL代入して、彼らは単に値を持たないnullではないことがわかりました1つがdefであるというupvoted答えを見てください。 –

+0

そこでは代わりに私の答えを更新しました....そして空白の空文字ケースをカバーします –

1

WHEREステートメントを使用します動作しませんでした

UPDATE t FROM 'table' t 
    SET company = CONCAT_WS(' ', firstname, lastname) 
    WHERE company IS NULL OR company = ''; 
+0

これはすばらしく見えます。私だけがnullを処理します –

+0

2つの質問 はフィールド名ですか? 名前の途中にスペースを入れると、(firstname、 'lastname)にする必要がありますか? – illcrx

+0

@illcrx。 。 。それは 'concat_ws()'がするものです。このバージョンは、 'NULL'値をより良く扱うので、より良いです - ' NULL'を返す代わりに、単に無視します。 –

0
UPDATE Table SET company = CONCAT(firstname, '', lastname) WHERE company IS NULL 
関連する問題