2015-08-20 25 views
-5

我不確定完成此操作的確切方式,但我希望有人能幫助我。我有一個傳遞給我的Python應用程序的字符串。解析元素數組

string = '41_1,41_2,41_3,44_2,44_4' 

這些元素(用逗號分隔)中的每一個都是一個行ID,然後是一個值(例如,41_2是行ID爲41,值爲2)。

因此,對於上面的字符串我需要更新:

Row ID 41: myColumn value '1,2,3' 

Row ID 44: myColumn value '2,4' 

離開這裏,我需要拿出像下面

UPDATE myTable SET myColumn = '1,2,3' WHERE id = 41; 

UPDATE myTable SET myColumn = '2,4' WHERE id = 44; 

我怎樣才能做到這一點的SQL語法?

回答

0
 #Updating code snippet by leplatrem 

     result = {'44': ['2', '4'], '41': ['1', '2', '3']} 

    for (k,v) in result.viewitems(): 
     temp_list = [str(i) for i in v] 
     temp_str = ",".join(temp_list) 
     temp_str = "'" + temp_str + "'" 
     print "UPDATE myTable SET myColumn={} where id={}".format(temp_str,k) 

#Output 

UPDATE myTable SET myColumn='2,4' where id=44 
UPDATE myTable SET myColumn='1,2,3' where id=41 
+0

我不認爲你讀了我原來的帖子。 sql語句是錯誤的並且意味着數據丟失。 – mattboston

+0

@mattboston:已更新。請檢查 –

0
>>> string = '41_1,41_2,41_3,44_2,44_4' 
>>> bits = [s.split('_') for s in string.split(',')] 
>>> for (key, value) in bits: 
...  result.setdefault(key, []).append(value) 
>>> result 
{'44': ['2', '4'], '41': ['1', '2', '3']} 
+0

現在如何從 { '44' 得到:[ '2', '4'], '41':[ '1', '2', '3'] } 至 UPDATE myTable SET myColumn ='1,2,3'WHERE id = 41; UPDATE myTable SET myColumn ='2,4'WHERE id = 44; – mattboston