使用CONCAT及GROUP_CONCAT函数在一个MySQL查询
嗨,大家好是更多钞票用同一查询GROUP_CONCAT和CONCAT功能我想使用使用CONCAT及GROUP_CONCAT函数在一个MySQL查询
SELECT GROUP_CONCAT(CONCAT(idmaterial,percent)) as 'material' FROM a_m where idarticle=1
拿到导致这样的一行一列
material
----------
1 5%10 6%80 1%10
请帮我看看你的想法非常感谢这里是我的表非常感谢您的帮助
idarticle |idmaterial| percent
---------- ---------- ----------
1 5 10
---------- ---------- ----------
1 6 80
---------- ---------- ----------
1 1 10
---------- ---------- ----------
2 1 90
---------- ---------- ----------
2 2 10
---------- ---------- ----------
GROUP_CONCAT
去与GROUP BY
:
SELECT idarticle,
GROUP_CONCAT(CONCAT(idmaterial, '%', percent) SEPARATOR ' ') as materials
FROM a_m
GROUP BY idarticle
并把一列中,你可以使用:
SELECT CAST(CONCAT(idarticle, ' ',
GROUP_CONCAT(CONCAT(idmaterial, '%', percent) SEPARATOR ' ')) AS CHAR) as material
FROM a_m
GROUP BY idarticle
非常感谢你的工作,但我得到[BLOB - 7B]结果而不是百分比值你知道什么是错的 – user961885 2012-02-17 17:43:24
CAST(whateveryourfieldis AS CHAR)即CAST(CONCAT(......)AS CHAR)作为材料 – 2012-02-17 17:46:24
谢谢,谢谢,谢谢... ...其工作再次感谢 – user961885 2012-02-17 17:47:11
只是为了澄清,GROUP_CONCAT()用于整理多行成一个单一的分隔字符串,在你的案例所有idmaterial的idartical = 1。 CONCAT()另一方面用于将字符串连接在一起。 CONCAT在字符串上工作,所以CONCAT('string1','string2','string3')创建string1string2string3,而GROUP_CONCAT会将上面的行取回,并返回5,6,1(例如)为idarticle = 1。帮助解释差异,以及为什么他们能够一起工作:) – 2012-02-17 17:50:15