MySql视图,其中一列是表列中的数组

时间:2013-05-06 18:48:52

标签: mysql

我正在尝试创建一个mysql视图,它将一个表中的多个值拉到视图中的一列中。我正在为postfix使用的别名表尝试不同的方法,以便我可以更好地管理任何给定别名的添加和删除

john@u.com         alias1@u.com
joy@u.com          alias1@u.com
jack@u.com         alias2@u.com

查看

alias1@u.com       john@u.com,joy@u.com
alias2@u.com       jack@u.com

创建此视图的mysql视图代码是什么?感谢您的时间和回复

3 个答案:

答案 0 :(得分:3)

您正在寻找GROUP_CONCAT

CREATE VIEW view1 AS
SELECT email1,
    GROUP_CONCAT(email2) email2
FROM tbl1
GROUP BY email1

<强>结果

|       EMAIL1 |               EMAIL2 |
---------------------------------------
| alias1@u.com | john@u.com,joy@u.com |
| alias2@u.com |           jack@u.com |

See a demo

答案 1 :(得分:0)

您可以在定义视图时使用group_concat

select column2, group_concat(column1)
from table1
group by column2

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

答案 2 :(得分:0)

创建表:

create table email (
  id serial,
  address varchar(254),
  alias varchar(254)
);

选择声明:

select group_concat(address) as addresses, alias
from email
group by alias;

创建视图:

create view aliases as
select group_concat(address) as addresses, alias
from email group by alias;