2017-08-01 73 views
-1

我的表看起来像这样如何在MySQL中创建具有列名称的表?

describe metal; 
+----------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+----------+-------------+------+-----+---------+-------+ 
| name  | varchar(20) | YES |  | NULL |  | 
| copper | varchar(20) | YES |  | NULL |  | 
| gold  | varchar(20) | YES |  | NULL |  | 
| iron  | varchar(20) | YES |  | NULL |  | 
| lead  | varchar(20) | YES |  | NULL |  | 
| mercury | varchar(20) | YES |  | NULL |  | 
| platinum | varchar(20) | YES |  | NULL |  | 
| silver | varchar(20) | YES |  | NULL |  | 
| tin  | varchar(20) | YES |  | NULL |  | 

我真正想要的是这个

+----------+ 
| name 
|+----------+ 
| copper 
| gold 
| iron 
| lead 
| mercury 
| platinum 
| silver 
| tin 

我的目标是通过name.I操纵列创建了我原来的表

CREATE TABLE metal (name VARCHAR(20),.... 

问题在这里

SELECT name FROM metal WHERE name LIKE 'co%'; 
Empty set (0.00 sec) 

铜在那里,所以我的创作出了问题。

+0

你actully需要什么? –

+0

我不明白你在问什么(以及谁提高了这个?)。 –

+1

这糟糕的设计。见正常化。 – Strawberry

回答

2

归一化的设计可能是这样的:

metals (id*, name) 

其中*是一个PRIMARY KEY

所以:

  id name 
      29 copper 
      79 gold  
      26 iron  
      82 lead  
      80 mercury 
      78 platinum 
      47 silver 
      50 tin 
-1

目前,您有一个实际名为“名称”的列/字段。如果您不需要,请删除“名称”列。

+----------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+----------+-------------+------+-----+---------+-------+ 
| name  | varchar(20) | YES |  | NULL |  | <------ 
| copper | varchar(20) | YES |  | NULL |  | 
1

这样创建表:

+----------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+----------+-------------+------+-----+---------+-------+ 
| name  | varchar(20) | NO | YES |   |  | 

然后你就可以在这个表中添加金属的不同的名字:铜,金,铁使用INSERT语句。

相关问题