2016-04-07 15 views
0

私は古いバージョンのMySQL(4.0)を持っており、Group_Concatまたはストアドプロシージャは使用できません。誰もが、私はこれらの行を連結できるか知っています:古いMySQLバージョンのGroup_concat

xxx || yyy  || zzz 
xxx || abc  || eee 
vvv || otherstuff || otherstuff 
vvv || otherstuff || otherstuff 

それはそのようにするには:すべての行はIDごとにグループ化され

xxx || yyy || zzz || abc || eee 

(ここで:xxxは、VVV、... )?私はしばらくの間この問題に遭遇していました...

+1

'||'は新しい列または文字列区切り記号を示しますか?あなたの質問を編集してください。文字列の連結には 'CONCAT_WS'と変数を使います。 – lad2025

+0

アップグレード。 Simples。 – Strawberry

+0

@ lad2025 || – Strawberry

答えて

2

keyword_idsを、連結したい列に置き換えることができます。 http://www.experts-exchange.com/questions/20955939/Mysql-group-concat-alternative-in-3-23-x.html

SELECT @prev_item_id := NULL; 

SELECT MAX(@keyword_ids := IF(@prev_item_id = item_id, CONCAT_WS(',',  
    @keyword_ids, keyword_ids), keyword_ids)), 
     @prev_item_id := item_id 
FROM mytable 
GROUP BY item_id; 
+0

良い解決策はうまくいくようですが、今は複数のクエリでJavaでそれを適応させる必要があります。アイデアがあれば、2つの* String *クエリーを受け入れないので、私は喜んでそれらを聞きます。ありがとう! – pathat0r

+0

@ pathat0r上記の解決策が有効なら、おそらく次のように書き直すことができます: 'SELECT MAX(@keyword_ids:= IF(@prev_item_id = item_id、CONCAT_WS( '、'、 @keyword_ids、keyword_ids)、keyword_ids)) (SELECT @ prev_item_id:= NULL)vars GROUP BY item_id; ' – Strawberry