2016-10-05 66 views
-1

表1如何插入从第二列相同的列值的MySQL

 
id | sub1   | sub2    | sub3 
1 | KK Nagar  | Alwartirunagar  | 
1 | Valasaravakkam | Nandambakkam  | Ramapuram 
1 | Porur   | Meenambakkam  | Ashok Nagar 
1 | Anna Nagar  | Kodambakkam   | Nungambakkam 
2 | West Mambalam | Virugambakkam  | T Nagar 
2 | KK Nagar  |      | 

如何在像SUB1,SUB2和SUB3值组单个列的新表通过ID插入值

+0

'group_concat'? – Wanderer

+0

你可以在这个更具体吗? –

+2

正常化这些数据或将成为一场噩梦。请参阅[Junction Tables](http:// stackoverflow。com/a/32620163) – Drew

回答

1

刚使用群组concat with group by如下 - 您的主表 -

| id | sub1 | sub2 | sub3 |

| 1 | kk nagar | Alwartirunagar | | | 1 | Valasaravakkam | Nandambakkam | Ramapuram | | 1 | Porur | Meenambakkam | Ashok Nagar | | 1 |安娜纳加| Kodambakkam | Nungambakkam | | 2 | West Mambalam | Virugambakkam | T Nagar | | 2 | KK Nagar | | |

现在当你运行一个查询 - 从t1 group by id选择id,group_concat(sub1,'|',sub2) 它会给你如下数据

| id | group_concat(sub1,',',sub2,',',sub3)| | 1 | kk nagar,Alwartirunagar,Valasaravakkam,Nandambakkam,Ramapuram,Porur,Meenambakkam,Ashok Nagar,Anna Nagar,Kodambakkam,Nungambakkam | | 2 | West Mambalam,Virugambakkam,T Nagar,KK Nagar ,, |

现在只需通过以下查询插入另一个表中的数据 从t1 group by id插入到t2 select select id,group_concat(sub1,',',sub2,',',sub3);

现在你会得到像下面t2的数据

| id | grouped_sub |
| 1 | kk nagar,Alwartirunagar,Valasaravakkam,Nandambakkam,Ramapuram,Porur,Meenambakkam,Ashok Nagar,Anna Nagar,Kodambakkam,Nungambakkam |

| 2 | West Mambalam,Virugambakkam,T Nagar,KK Nagar ,,

希望这会对你有帮助。

注意: - 由于问题要求不同 - 查询 - 插入到t2选择* from(从t1选择id,sub1作为主题union select id,sub2作为subject从t1 union select id,sub3作为来自t1的主题) temp where subject!=''按ID排序;

| id | grouped_sub | + ------ + ---------------- + | 1 | Nungambakkam | | 1 | Alwartirunagar | | 1 | Ramapuram | | 1 | Porur | | 1 | Kodambakkam | | 1 | kk nagar | | 1 | Nandambakkam | | 1 | Ashok Nagar | | 1 |安娜纳加| | 1 | Valasaravakkam | | 1 | Meenambakkam | | 2 | West Mambalam | | 2 | T Nagar | | 2 | KK Nagar | | 2 | Virugambakkam |

+0

我正在使用group_concat并插入第二个表...我想单独行......不是那样的。 – Chitra

+0

是的,分享你的困惑 –

+0

没有逗号在同一列 – Chitra

相关问题