2017-06-15 8 views
0

私の前のquestionでは、自分のフィールドのバックティックを使用してテーブルを作成する方法を尋ねました。今私たちのチームは、mysqlにファイルをインポートするときに、いくつかの.csvファイルを計算することに決めました。ただし、デフォルトのデータ型はVARCHAR(500)です。私たちのテーブルには金額の列があり、そのデータ型はINTであることが望ましいです。あなたはそれをどうやって行うかのヒントを教えてもらえますか?ありがとうございました。ここで csvファイルをMySQLにインポートする際にテーブルを作成する際のデータ型を変更します。

は私のコードです:あなたは、列の名前に基づいて、異なる列タイプを使用する必要がある場合

for($i=0;$i<count($data); $i++) { 
    $f = strtolower(trim($data[$i])); 
    if ($f) { 
     // normalize the field name, strip to 20 chars if too long 
     $f = substr(preg_replace ('/[^0-9a-z]/', '_', $f), 0, 100); 
     $field_count++; 
     $fields[] = $f.' VARCHAR(500)'; 
    } 
} 

$sqlcreate = "CREATE TABLE $table (" . implode(', ', $fields) . ')'; 
echo $sqlcreate; 

答えて

1

、あなたはANのいずれかを使用することができれば/その後、またはスイッチ/ケース声明:

for($i=0;$i<count($data); $i++) { 
    $f = strtolower(trim($data[$i])); 
    if ($f) { 
     // normalize the field name, strip to 20 chars if too long 
     $f = substr(preg_replace ('/[^0-9a-z]/', '_', $f), 0, 100); 
     $field_count++; 
     if($f == 'Amount') { 
      $fields[] = $f.' INT(10)'; 
     } else { 
      $fields[] = $f.' VARCHAR(500)'; 
     } 
    } 
} 

$sqlcreate = "CREATE TABLE $table (" . implode(', ', $fields) . ')'; 


echo $sqlcreate; 
+0

私たちはこれを試して、できるだけ早くあなたを更新します:) – Rukikun

+0

それは嫌な叫び!!! 私のコードにもう一つの等号がありませんでした... $ f == '金額' それは働いていました:) – Rukikun

+0

私たちの計算でもうまく動作してくれてありがとう:) – Rukikun

関連する問題