Удалите « N», когда вы выберете в Outfile
-
08-10-2019 - |
Вопрос
Я делаю А. SELECT INTO OUTFILE
и это показывает « n» для каждого NULL
стоимость. Есть ли для меня, чтобы сделать его просто пустым вместо этого?
Я на MySQL.
Решение
Вы можете использовать COALESCE
Функция что-то вроде этого:
COALESCE(yourfield, '')
Другие советы
Хороший вопрос, а также актуальны сегодня, как было в 2011 году. Я использую хранимую процедуру для этого, который принимает имя таблицы в качестве аргумента. Впоследствии он преобразует все нулевые значения для пустых строк (''), используя оператор для подготовки и никаких курсоров, для курсоров настолько не SQL. Я проверил его со столом с некоторыми 200 столбцов и результирующим утверждением для подготовки, который длится около 15 000 символов:
CREATE DEFINER=`root`@`localhost` PROCEDURE `ExportFixNull`(
in tblname tinytext)
BEGIN
set @string=concat(
"Update ",@tblname," set ",
(
select group_concat(column_name,"=ifnull(",column_name,",'')")
from information_schema.columns
where table_name=@tblname
)
,";"
);
prepare s1 from @string;
execute s1;
drop prepare s1;
В главном SQL-файле есть оператор
SET @@group_concat_max_len = 60000;
Это может быть решающим.
Подробнее (на голландских): http://wiki.devliegendebrigade.nl/select_into_outfile_%28mysql%29.
С уважением, Jeroen Strompf