我在MySQL表cart
上有这些数据。
我想运行一个像这样输出的查询:
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
如何获得所需的输出?
答案 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'