Обычно вы должны сделать это так:
SELECT *
FROM (
select 'A', 'B', 'C'
union all
select a, b, c from table
) t
INTO OUTFILE [...]
Обратите внимание, что вам нужно убедиться, что все типы данных столбцов правильно совпадают, то есть все они должны быть varchar или аналогичными.
Для заголовков вы можете автоматизировать их следующим образом:
SELECT * FROM (
SELECT MAX(CASE WHEN ORDINAL_POSITION = 1 THEN COLUMN_NAME END),
MAX(CASE WHEN ORDINAL_POSITION = 2 THEN COLUMN_NAME END),
MAX(CASE WHEN ORDINAL_POSITION = 3 THEN COLUMN_NAME END),
MAX(CASE WHEN ORDINAL_POSITION = 4 THEN COLUMN_NAME END),
MAX(CASE WHEN ORDINAL_POSITION = 5 THEN COLUMN_NAME END),
MAX(CASE WHEN ORDINAL_POSITION = 6 THEN COLUMN_NAME END),
[...]
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'ORDERS'
AND TABLE_SCHEMA = 'REMOTE'
UNION ALL
SELECT [...]
) t
INTO OUTFILE [...]
Но вы все равно должны знать количество столбцов. Если вы хотите сделать это динамически, для этого по сути потребуется динамический SQL.
Может быть проще написать скрипт Python для этого .