2017-08-01 8 views
-1

私のテーブルには、私が本当にしたいことはMySQLの列の名前を持つテーブルを作成するには?

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

と私の元のテーブルを作成している私の目的は、name.Iによって、列を操作することである。この

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

あるこの

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 |  | 

のように見えます問題はここにあります

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

銅がありますので、私の作成に何か問題があります。

+0

。? –

+0

私はあなたが何を求めているのか理解していません(誰がこれを上書きしましたか?)。 –

+1

これは貧弱なデザインです。正規化を参照してください。 – Strawberry

答えて

2

正規化されたデザインは、次のようになります。

metals (id*, name) 

* PRIMARY KEYので

です:actully何が必要

  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) | NO | YES |   |  | 

をそして、あなたは、この表に異なる金属の名前を追加することができます:

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

次のようにテーブルを作成し、銅、金、INSERT文を使用して鉄を。

関連する問題