免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8928 | 回复: 7
打印 上一主题 下一主题

mysql中的多行查询结果能不能合并成一个 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-02 18:19 |只看该作者 |倒序浏览
拿mysql表说明,如
SELECT
user.host
FROM user



结果集有多条数据,如
host1
host2
host3

何使用SQL使他们合并在一个字段中(插入一个分隔符的字符串),期待结果为:
host1,host2,host3

论坛徽章:
0
2 [报告]
发表于 2006-06-02 19:33 |只看该作者
select group_concat(host) from user;
函数说明看手册吧。

论坛徽章:
0
3 [报告]
发表于 2006-06-02 19:57 |只看该作者
原帖由 rardge 于 2006-6-2 19:33 发表
select group_concat(host) from user;
函数说明看手册吧。




哈哈,Great!That just what I want!
之前在手册里索引concat只出了个CONCAT_WS,SELECT的语法章节里也不见有group_concat这个,原来在GROUP BY一章里.

论坛徽章:
0
4 [报告]
发表于 2006-06-02 20:00 |只看该作者
原帖由 crazysoul 于 2006-6-2 19:57 发表


昏过去~~~

论坛徽章:
0
5 [报告]
发表于 2006-06-05 19:15 |只看该作者
问题又来,这才发现单元测试抽象得太简单了,如下情况又该怎样处理:

SELECT
count(user.host) as host_count
,user.host
FROM user
GROUP BY
user.host
ORDER BY host_count desc

执行结果 假设为:
host_count,host
3,host1
2,host3
1,host2

"ORDER BY host_count desc" 是必要的排序
只需要返回 "host1,host3,host2"
又该怎样做呢?

限制条件:
不能在外层用
select group_concat(user.host) from ( 上面那段),因为MYSQL的子查询间的联合不能超过两层,而"上面那段"里要用到最外层查询传递进来的字段作为查询条件(现在单元测试抽出来了),所以再外包一层的话就与最外层的查询失去联系了(字面难以表达,希望有经验的会明白吧)...

论坛徽章:
0
6 [报告]
发表于 2006-06-05 19:53 |只看该作者
原帖由 rardge 于 2006-6-2 19:33 发表
select group_concat(host) from user;
函数说明看手册吧。


我的MSYQL是4。0。12版本的,怎么不支持
mysql>use mysql;
select group_concat(Host) from user;

论坛徽章:
0
7 [报告]
发表于 2006-06-05 21:50 |只看该作者
原帖由 crazysoul 于 2006-6-5 19:15 发表
限制条件:
不能在外层用
select group_concat(user.host) from ( 上面那段),因为MYSQL的子查询间的联合不能超过两层,而"上面那段"里要用到最外层查询传递进来的字段作为查询条件(现在单元测试抽出来了),所以再外包一层的话就与最外层的查询失去联系了(字面难以表达,希望有经验的会明白吧)...

这个是没错,我知道。
请把你的问题再说清楚点,一次性举个完整的例子出来,实在猜的很累。

论坛徽章:
0
8 [报告]
发表于 2006-06-05 21:50 |只看该作者
原帖由 xxjoyjn 于 2006-6-5 19:53 发表


我的MSYQL是4。0。12版本的,怎么不支持
mysql>use mysql;
select group_concat(Host) from user;

4.1 开始有这个函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP