2017-08-03 40 views
2

這是我想做的事:如何加入表名以行值來重命名列

我拿到表「T01」

+----+-------------+-----+ 
| ge | f0   | f1 | 
+----+-------------+------ 
| 1 | 10   | 5 | 
| 2 | 2   | 4 | 
| 3 | 58   | 88 | 
| 4 | 66   | 9 | 
+----+-------------+-----+ 

另一個表T02:

+----+-------------+------+-----+ 
| ge | f0   | f1 | f2 | 
+----+-------------+------+-----+ 
| 1 | 1   | 75 | 10 | 
| 2 | 25   | 74 | 55 | 
| 3 | 5   | 788 | 66 | 
| 4 | 6   | 79 | 11 | 
+----+-------------+------+-----+ 

另一張表tFE

+----+-------------+---------+ 
| ge | f0  | f1 | f2 | 
+----+-------------+---------+ 
| 1 | t01 | f0 | Code| 
| 2 | t01 | f1 | City| 
| 3 | t02 | f0 |Number| 
| 4 | t02 | f1 | Index| 
| 5 | t02 | f2 | CIP | 
+----------------------------+ 

什麼w LD我想要做的是成才這樣的: 表T01:

+----+-------------+-----+ 
| ge | Code  | City| 
+----+-------------+------ 
| 1 | 10   | 5 | 
| 2 | 2   | 4 | 
| 3 | 58   | 88 | 
| 4 | 66   | 9 | 
+----+-------------+-----+ 

表T02:

+----+-------------+------+-----+ 
| ge | Number  |Index | CIP | 
+----+-------------+------+-----+ 
| 1 | 1   | 75 | 10 | 
| 2 | 25   | 74 | 55 | 
| 3 | 5   | 788 | 66 | 
| 4 | 6   | 79 | 11 | 
+----+-------------+------+-----+ 

我得到了數百個像T01,T02表有一些有更多的列,他們的列的名稱是在tFE裏面,我想用他們的真實姓名在tFE內替換他們的列名f0,f1

+2

你只是問如何重命名列? – Bridge

+0

是的,我想重新命名t01,t02的列名,其值在tFE內 – David

+0

不幸的是,在您的示例中,數據沒有任何意義,它列出了列名進入的表,但不包括順序或任何與現有的列名 – Bridge

回答

0

我可以建議您使用腳本來改變您熟悉的任何語言的列名。我用PHP來證明這個問題。

使用抓取從表TFE的所有數據:

SELECT * FROM `tFE`; 

遍歷從上面查詢的結果。

foreach($results as $result) { 
    $tableName = $result[0]['fo']; 
    $oldColumn = $result[0]['f1']; 
    $newColum = $result[0]['f2']; 
    // Run following query to change the columnName using PDO 
    "ALTER TABLE {$tableName} Change {$oldColumn} {$newColumn} ["Data Type"];" 
} 
+0

謝謝,我在bash中做過類似的事情 – David