2017-01-05 19 views
1

MySQLのload outfile関数で空白を持つNULL値を扱うには?以下mysql load outfile関数で空白値を使ってnull値を扱うには?

列の

SELECT * FROM employees WHERE `date` BETWEEN '2016-12-15' AND '2017-01-04' INTO OUTFILE '/tmp/test.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY "" LINES TERMINATED BY ' '; 

ヌル値はCSVにNULLとして示されているクエリです。どのように私はこれを空白にすることができますか?

カラムは動的にフェッチされ、さまざまなテーブルからデータを抽出するための単一の関数が書き込まれるため、IFNULL(Col,'')は使用できません。 3つの方法の

if($table == 'employees'){ 
    $this->Target = ClassRegistry::init($table); 
    $this->Target->useTable = $table; 
    $allColumnHeaders = $this->Target->getColumnTypes(); 
    $header_fields = implode("','", array_keys($allColumnHeaders)); 
    $sql = " Select '" . $header_fields . "' UNION ALL SELECT $fields FROM " . $table . " WHERE date BETWEEN '" . $start_date . "' AND '" . $end_date . "'" 

    $sql = $sql . " INTO OUTFILE '" . $csvFile . "' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '' LINES TERMINATED BY '\n';"; 
    $result = $this->db->query($sql); 
} 
+1

缶あなたの機能を投稿してください – Matt

+0

は –

答えて

0

ワン:

IFNULL

IFNULL(Col, '') 

COALESCE

COALESCE(Col, '') 

CASE文

CASE WHEN Col IS NULL THEN '' ELSE Col END AS Col 
+0

を更新しました "私は' IFNULL(Col、 '') '"を使用できません。私は 'COALESCE'と' CASE EXPRESSION'でも同じことが起こると思います。 – sagi

+0

@sagi私は機能を求めるよ – Matt

+0

質問を更新 –

関連する問題