MySQL Join VIEW,将列连接成一个字符串

Posted

技术标签:

【中文标题】MySQL Join VIEW,将列连接成一个字符串【英文标题】:MySQL Join VIEW, Concatenate Columns into ONE STRING 【发布时间】:2014-06-05 20:51:56 【问题描述】:

我从工作正常的表中创建了一个视图。问题是在我的表中,我将“FIRSTNAME”和“LASTNAME”作为单独的列。在我看来,我想将它们连接在一起作为一个全名。

mysql

CREATE VIEW leader_table AS
SELECT 

 lgl_leaders.LEAD_ID,
 lgl_type.LG_TYPE,
 member_db.FIRSTNAME AS PRIMARY_FNAME,
 member_db.LASTNAME AS PRIMARY_LNAME,
 lgl_leaders.LG_ADDRESS,
 lgl_leaders.LG_CITY,
 lgl_leaders.LG_ZIP,
 lgl_leaders.LG_LAT,
 lgl_leaders.LG_LNG,
 lgl_leaders.CHILDCARE,
 lgl_leaders.LG_DAY,
 lgl_leaders.LG_TIME

 FROM
   lgl_leaders,lgl_type,member_db
 WHERE
       lgl_type.IDNUM = lgl_leaders.LG_TYPE
 AND   member_db.IDNUM = lgl_leaders.PRIMARY_LEADER

一个例子是:

member_db.FIRSTNAME:“鲍勃” member_db.LASTNAME:“史密斯”

我希望将一个名为“FULLNAME”的单元格改为:“BOB SMITH”,而不是单独的列。

如何修改视图以将两个字符串连接在一起?

【问题讨论】:

【参考方案1】:

使用CONCAT()

CREATE VIEW leader_table AS
SELECT 

 lgl_leaders.LEAD_ID,
 lgl_type.LG_TYPE,
 CONCAT(member_db.FIRSTNAME ," ",member_db.LASTNAME ) FULL_NAME,
 lgl_leaders.LG_ADDRESS,
 lgl_leaders.LG_CITY,
 lgl_leaders.LG_ZIP,
 lgl_leaders.LG_LAT,
 lgl_leaders.LG_LNG,
 lgl_leaders.CHILDCARE,
 lgl_leaders.LG_DAY,
 lgl_leaders.LG_TIME

 FROM
   lgl_leaders,lgl_type,member_db
 WHERE
       lgl_type.IDNUM = lgl_leaders.LG_TYPE
 AND   member_db.IDNUM = lgl_leaders.PRIMARY_LEADER

【讨论】:

就是这样。非常感谢!一旦时间限制让我接受,我会接受作为答案。再次感谢! 如果您要连接的一个或多个列可以为空,那么您应该使用 COALESCE() 将 NULL 值替换为空字符串以避免 NULL FULL_NAME 如果LASTNAMEFIRSTNAME 为 NULL。

以上是关于MySQL Join VIEW,将列连接成一个字符串的主要内容,如果未能解决你的问题,请参考以下文章

将列转换为矩阵

如何将Oracle中同一列的多行记录拼接成一个字符串

如何将一段字符串连接成一个字符串?

JavaScript基础 join() 将数组连接成字符串 化零为整

join()方法

join()方法