2013-11-23 2 views
0
Chart_date  chart_field           chart_counts 
    20131115  user_jrFeed_item_count ,        {"1":2} 
    20131115  user_jrForum_item_count,        {"1":1} 
    20131115  user_jrFeed_item_count,user_jrForum_item_count,  {"1":1,"1":2} 

"user_jrFeed_item_count, user_jrForum_item_count"텍스트를 mysql에서 "song_file_stream_count"와 같은 이름으로 어떻게 바꿀 수 있습니까?mysql의 테이블 데이터 필드 이름 바꾸기

필드는 : 20131115 user_jrFeed_item_count,user_jrForum_item_count, {"1":1,"1":2}

이 기능 당신은 자동 증분 역할과 기본 키 고려해야 할 다른 열 (SrNo)를 추가 할 필요가

INSERT INTO table1 (Chart_date, chart_field, chart_counts) 
SELECT Chart_date, GROUP_CONCAT(chart_field) as chart_field, 
REPLACE(GROUP_CONCAT(chart_counts),'},{',',') as chart_counts 
FROM table1 
GROUP BY Chart_date 

답변

0

필드는 해당 문으로 작성되지 않습니다. 이 문장은 집계 테이블에 삽입하는 것입니다.이 테이블은 사용자가 묻는 것입니다. on this question.

게다가 필드 이름을 변경할 필요가 없습니다. 필드의 값을 바꿀 방법을 찾고 있는데, 이는 다릅니다.

@Aakash Goyal 업데이트 문을 실행할 수도 있지만 Chart_date 또는 table1에서 생성 된 모든 새 레코드는 현재 형식으로 제공됩니다. 레코드를 계속 업데이트하거나 테이블을 쿼리 할 때 레코드를 바꿀 필요가 있습니다.

SELECT Chart_date , 
     replace(chart_field, 
       'user_jrFeed_item_count,user_jrForum_item_count,', 
       'song_file_stream_count') as chart_field, 
     chart_counts 
FROM table1 
+0

잘 작동합니다 .... 간단하고 쉬운 솔루션 – user3011222

0

에서 생성됩니다. 업데이트 문 사용 :

+0

실제 데이터베이스의 다른 데이터 필드에 영향을 줄 수는 있지만 ... 시도해 보겠습니다. http://sqlfiddle.com/#!2/00592a/1 – user3011222

+0

이것은 작동해야합니다 ... http : //sqlfiddle.com/#! 2/ed0f1/1 – AsG

+0

잘 작동합니다. 내 유일한 두려움은 특정 테이블을 크게 변경하게 될 것입니다. – user3011222