Как обрабатывать нулевые значения с пробелами в MySQL load outfile?Как обрабатывать нулевые значения с пробелами в mysql load outfile?
Ниже приведен запрос
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 ' ';
Нулевые значения в столбцах показаны как NULL в CSV. Как я могу сделать это пустым?
Я не могу использовать IFNULL(Col,'')
, так как столбцы выбираются динамически и записывается одна функция для извлечения данных из разных таблиц.
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);
}
Может вы публикуете свою функцию, пожалуйста, – Matt
обновил вопрос –