2016-04-23 2 views
0

MySQLで3つの列を1にマージするのに問題があります。私はいくつかの列にいくつかのnull値を持っているが、私はそれが私に正しい結果を与える最初の結果ではないので、私は違いがないと思うが、私は3列が残っていると新しい列が空のままテーブルを参照します。これは私が使用しているコードである:実際にテーブルを変更することであるMySQLで3列を1にマージする

SELECT FirstName AS First_Name 
, LastName AS Last_Name 
, CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1, ContactPhoneNumber1) AS Contact_Phone 
FROM TABLE1 
+1

計算を選択しているところです。テーブルの構造を変更することを意味しましたか? – Mureinik

+0

3つのカラムをマージするカラムがある限り、テーブル構造を変更しても構いません。 –

答えて

1

一つのアプローチ:

    のphpMyAdminで
  1. またはALTER TABLEコマンドを使用して、所望のを挿入するContactPhoneカラム
  2. UPDATE MyTable SET ContactPhone = CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1, ContactPhoneNumber1)を追加あなたは実際にContactPhoneNumber1を2回持っていましたか?)
  3. 将来の行が追加されるか、または既存の行に市外局番または電話番号が変更されたときに、ContactPhone列がautomaticallそして、あなたがテーブルを使用し同じようにビューを使用することができます

    CREATE VIEW MyVIEW AS SELECT *, CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1, ContactPhoneNumber1) AS ContactPhone from MyTable

    、しかし:

を更新しかし、もっと良いアプローチは、この余分な列を持っているあなたのテーブルの上にビューを作成することであるYそれは決して同期する必要がない余分に合成された列を持っています。

+0

ContactPhoneAreaCode1は、コピーと貼り付けで、実際は2つの異なる列です。私はあなたの第2のアプローチを試みました、それはphpmyadminで成功を収めましたが、私はすべてが同じであることを眉間で見るとき –

+0

あなたの最初のアプローチはOKでした。ありがとうございました! –

+0

もう1つの質問ですが、これはGoogleの連絡先からのインポートであるため、約3000件の「null」結果があります。これらの行をすべて一度に削除できる方法はありますか? –

関連する問題