先通过select sid,goods_count, GROUP_CONCAT(CONCAT(goods_name,' ')) from qg_sell group by sid,goods_count;得到如下结果:
sid goods_count GROUP_CONCAT(CONCAT(goods_name,' '))25 1 罗汉果
27 2 罗汉果
29 1 罗汉果
31 1 罗汉果 ,碧螺春
33 2 罗汉果
33 3 碧螺春
因为sid: 31的2个物品,罗汉果和碧螺春都是一份即(goods_count=1)所以可以合并而sid:33的两个物品,数量不一样,不能合并。我想输出为:33 罗汉果*2、碧螺春*3 这样的形式,该怎么写呢?
sid goods_count GROUP_CONCAT(CONCAT(goods_name,' '))25 1 罗汉果
27 2 罗汉果
29 1 罗汉果
31 1 罗汉果 ,碧螺春
33 2 罗汉果
33 3 碧螺春
因为sid: 31的2个物品,罗汉果和碧螺春都是一份即(goods_count=1)所以可以合并而sid:33的两个物品,数量不一样,不能合并。我想输出为:33 罗汉果*2、碧螺春*3 这样的形式,该怎么写呢?
解决方案 »
- mysql存储过程查询赋值
- 触发器问题
- 个mysql替代语句
- mysql6.0.3免安装版数据库的中文乱码问题
- 主从同步问题
- ERROR 1366 (HY000) mysql Incorrect string value: '\xC2\xED' for column 'mycolumn' at row 1
- 两台mysql数据库服务器同步复制的配置
- 问个mysql自动增长和事务安全的问题
- 紧急求救!关于MySQL大数据量情况下性能优化的问题?
- 为什么会出现这样错误"[TCX][MyODBC]Transaction are not enabled"?
- (在线等)求一个表中数据相加后的平均值
- 重启 端口是3305的 mysql server如何做
语句如下:
select sid, GROUP_CONCAT(CONCAT(goods_name,'*',goods_count))
from qg_sell
group by sid;
from qg_sell
group by sid;
sid
24 罗汉果*5
25 罗汉果
27 罗汉果*2
29 罗汉果
31 罗汉果,碧螺春
33 碧螺春*3,罗汉果*2非常感谢!还有个问题,如果要把结果前面的sid,替换为qg_sellid表里的id对应的user_name,该如何改动?(qg_sellid里的id与qg_sell里的sid相同)
from qg_sell
group by sid;合并成一句...不知道行不行。最后输出的就是user_name goods_name
张三 罗汉果*3,碧螺春*2
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
qg_sell 表里有 sid、goods_name、goods_count这2个表里的id和sid是对应的,方便联合查询-------------------------------------
我想得出:当id=sid时,列出如下结果user_name goods_name
张三 碧螺春*3
from qg_sell s join qg_sellid se on s.sid=se.id
group by se.user_name;