日期:2014-05-16  浏览次数:20575 次

mysql合并多条记录的单个字段去一条记录

mysql怎么合并多条记录的单个字段去一条记录,今天在网上找了一下,方法如下:

?

?

测试用表结构:

-- --------------------

--
-- 表的结构 `tet`
--

CREATE TABLE IF NOT EXISTS `tet` (
? `id` int(11) NOT NULL,
? `name` varchar(255) NOT NULL,
? `url` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 转存表中的数据 `tet`
--

INSERT INTO `tet` (`id`, `name`, `url`) VALUES
(1, '百度 ', 'http://www.baidu.com '),
(0, 'google ', 'http://www.google.com.hk '),
(3, '400电话 ', 'http://www.my400800.cn ');

?

方法一:

SELECT GROUP_CONCAT ( name ) name
FROM tet
WHERE 1 = 1
LIMIT 0 , 30

?

?

结果:

name 百度,google,400电话

?

GROUP_CONCAT还可以用 SEPARATOR? 关键词指定连接符,sql语句如下:

?

SELECT GROUP_CONCAT ( url SEPARATOR " @ " ) url
FROM tet
WHERE 1 = 1
LIMIT 0 , 30

?

?

结果:

http://www.baidu.com@http://www.google.com.hk@http://www.my400800.cn

?

?

?

方法二:

SELECT GROUP_CONCAT ( name ) name
FROM tet
WHERE 1 = 1
GROUP BY id
LIMIT 0 , 30

?

?

结果:

google
百度
400电话

?