2011-04-07 1 views
1

Надеюсь, это просто быстро исправить, но когда я выполнить любой запрос на выборку, например,MySQL добавляет имя столбца в начале результата

SELECT table_name 
FROM table_info 
WHERE load_order IS NOT NULL 
ORDER BY load_order; 

всегда предваряется имя столбца результата. В этом случае результат,

table_name settings tax tax_rate sales_tax_zone sic 
naics exempt_reason wh pack pcat route supply_point 
point credit_status fuel_type participant site salesman 
driver truck profit terms vendor product pump customer 
card card_fuel_type tax_certificate prodware prodware_price 

Вот отрывок из сценария Баш:

TABLES=` (
    echo -n "select table_name from table_info " 
    echo -n "where load_order is not null " 
    echo "order by load_order;" 
) | mysql -uuser -ppassword database` 

Синтаксический его с помощью:

for TABLE in ${TABLES} 
do 
if [ $TABLE != 'table_name' ] 
    do_table #Start the load process 
fi 
done 

Проблема в том, что сценарий достаточно большой (~ 2000), и есть много избранных запросов. Есть ли опция, которую я могу передать в mysql, которая исключает имя столбца?

Обнаружено решение: мне нужно было использовать опцию -skip-column-names при вызове mysql. Спасибо за ответы на все вопросы.

+0

Что именно вы имеете в виду под «критерии поиска», который отображается в первом ряду? – vbence

+0

Критерии поиска - это поля, которые я хочу выбрать. В этом случае, table_name. – btl

ответ

1

Звучит так, что это имя столбца возвращается в ваш результирующий набор.

Чтобы устранить это из сценария оболочки, попробуйте изменить код, обрабатывающий результаты. Как-то пропустите первый результат, так как это имя столбца.

псевдокод:

for each result in myResultSet 
    if result != myResultSet[0] 
    begin 
     //include this result. 
    end 
next 
+0

Да, это проблема, и я запускаю ее через скрипт оболочки. – btl

+0

@btl: отредактируйте свой вопрос с помощью скрипта и как вы анализируете результаты. –

+0

Это по существу то, что мне нужно, но я узнал, что опция -skip-column-names делает именно то, что мне нужно при вызове mysql. – btl

1

Вот ответ на ваш вопрос:

CLI страница человек MySQL говорит, что есть возможность для "--column названий". Попробуй это.

А вот ответ на этот вопрос вы не спрашивали:

Да, вы должны делать это по-другому. Перейдите на какой-то язык, который фактически дает вам соединение с базой данных, а не запускает «много запросов» через каналы!

+0

Мне жаль, что у меня не было роскоши использовать другой язык, к сожалению, это основано на старой системе, поэтому я застрял с тем, что у меня есть. Благодарим вас за ответ на этот вопрос, я рассмотрю это. – btl

0

Изменение выбрать для чтения

SELECT table_name as ` ` 
FROM table_info 
WHERE load_order IS NOT NULL 
ORDER BY load_order; 

или

SELECT table_name as `\0` 
FROM table_info 
WHERE load_order IS NOT NULL 
ORDER BY load_order;