Вопрос

Я делаю А. 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top