MySQL group_concat和concat

时间:2013-06-05 02:21:15

标签: mysql

我在MySQL表cart上有这些数据。

enter image description here

我想运行一个像这样输出的查询:

Advance Technique Conditioner (2), Advance Technique Gel (1)

所以我正在进行group_concat查询,并尝试查询输出我想要的输出。这是输出最接近所需的查询:

select concat(group_concat(product separator ', '), group_concat(quantity separator ', ')) as 'prod' from cart where debt_no='0000001'

但正如预期的那样,输出如下:Advance Technique Conditioner, Advance Technique Gel2, 1

如何获得所需的输出?

3 个答案:

答案 0 :(得分:7)

CONCAT()应位于GROUP_CONCAT()

GROUP_CONCAT(CONCAT(product, ' (', CAST(quantity AS CHAR(15)), ')') SEPARATOR ', ')

请记住,GROUP_CONCAT()的默认长度为1024.因此,如果您想更改限制,请执行以下行,

SET [GLOBAL | SESSION] group_concat_max_len = val; -- val is the new length

答案 1 :(得分:2)

SELECT GROUP_CONCAT(CONCAT(product, ' (', quantity, ')') SEPARATOR ', ')

答案 2 :(得分:1)

您需要先concat(),然后group_concat()

select group_concat(concat(product, ' (', quantity, ')') separator ', ') as prod
from cart where debt_no='0000001'