在MySQL中将3列合并为1

时间:2016-04-23 13:27:26

标签: mysql

我在MySQL中将三列合并为1时遇到问题。确实,我在某些列中有一些空值,但我认为它没有区别,因为在第一次结果它给我正确的结果,但是当我浏览表时,3列保留,新列保持为空。这是我用过的代码:

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

1 个答案:

答案 0 :(得分:1)

一种方法是实际改变表格:

  1. 在phpmyadmin中或使用ALTER TABLE命令添加ContactPhone列
  2. UPDATE MyTable SET ContactPhone = CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1, ContactPhoneNumber1)插入所需的值(你真的想让ContactPhoneNumber1在那里两次吗?)
  3. 也许编写一个触发器,以便在添加未来行或现有行更改区号或电话号码时,ContactPhone列会自动更新
  4. 但更好的方法是在TABLE上创建一个具有此额外列的VIEW:

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

    然后你可以像使用表一样使用视图,但它有一个额外的合成列,永远不需要保持同步。