2

これらのデータは 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

どうすれば目的の出力を得ることができますか?

4

3 に答える 3

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
于 2013-06-05T02:23:07.390 に答える
2
SELECT GROUP_CONCAT(CONCAT(product, ' (', quantity, ')') SEPARATOR ', ')
于 2013-06-05T02:22:54.530 に答える
1

concat()最初に、次に次のことを行う必要がありますgroup_concat()

select group_concat(concat(product, ' (', quantity, ')') separator ', ') as prod
from cart where debt_no='0000001'
于 2013-06-05T02:24:49.910 に答える