2

アーティストの列とシンボルの列を持つテーブルがあり、それらを 1 つのセルに結合したいと考えています。参加するときに、これを試すと次のエラーが表示されます

SELECT LOOK_UP_TO_CAT_ID, group_concat( ARTIST
SEPARATOR SYMBOL )
FROM artist_view
GROUP BY LOOK_UP_TO_CAT_ID

1064 - SQL 構文にエラーがあります。'SYMBOL) FROM artist_view group by LOOK_UP_TO_CAT_ID LIMIT の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

セパレーターを SYMBOL フィールドにする方法

編集:私にとって何がうまくいったか

これが最終的に私のために働いたものです。ここで答えを見つけました:

MySQL で複数の行を単一の行に連結する

SELECT 
  LOOK_UP_TO_CAT_ID,
  group_concat( concat( ARTIST, " ",SYMBOL," " ) SEPARATOR '' )
FROM artist_view
GROUP BY LOOK_UP_TO_CAT_ID
4

2 に答える 2

1

それはできませんSEPARATOR。文字列リテラルでなければなりません。列や式を入れることはできません。から引用GROUP_CONCAT

グループ値の間に挿入する必要がある文字列リテラル値が続く SEPARATOR を使用します。

代わりに文字列リテラルをセパレータとして使用してください。

于 2013-02-21T13:27:01.637 に答える
0

ARTIST,SYMBOL,SEPARATORそれぞれの組み合わせをどのように分離するかはわかりませんLOOK_UP_TO_CAT_IDが、これで開始できます。

select LOOK_UP_TO_CAT_ID,group_concat(grouped)
from
(
select LOOK_UP_TO_CAT_ID,ARTIST,`SEPARATOR`,`SYMBOL`,
concat(ARTIST,`SEPARATOR`,SYMBOL) as grouped
from artist_view av
) t
group by LOOK_UP_TO_CAT_ID;
于 2013-02-21T13:56:42.183 に答える