2015-06-12 70 views
-1

我有在細胞這樣的數據:
MySQL的:轉換行數據到列

1:0100
2:77042609291929541
3:3100000
4:01
7:12014
11:115
14:11502
18:5999
22:0112
25:015
41:00083121
49:7014

我怎樣才能把這些值代入列?例如。

col_1 |_______col_2_______ | _ col_3 _ |col_4 |col_5 |.....col_127 |col_128 | 
_____________________________________________________________________________ 

0100 |77042609291929541 | 3100000 |............................. 

回答

0

GROUP_CONCAT是你正在尋找的。 https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

編輯:Oups,讀你的問題要快, 他們在做什麼你問的沒有簡單的方法,你可能要重新設計你的表。您可能必須循環使用SUBSTRING_INDEX,然後使用\n先分割,然後切割您的:

我沒有在哪裏測試,所以它可能不工作,但它只是給你一個開始。 (這也只是第一個循環,但內部的循環完全相同)。

SET TEST = "1: 0100 
2: 77042609291929541 
3: 3100000 
4: 01 
7: 12014 
11: 115 
14: 11502 
18: 5999 
22: 0112 
25: 015 
41: 00083121 
49: 7014"; 

SET len = LENGTH(TEST); 
SET startpos = 1; 
REPEAT 
     SET endpos = LOCATE('\n', TEST, startpos); 
     SET item = SUBSTR(TEST, startpos, endpos - startpos); 

     IF item <> '' AND item IS NOT NULL THEN   
      print item; 
     END IF; 
     SET startpos = endpos + 1; 
UNTIL startpos >= len END REPEAT;