MySQL добавляет имя столбца в начало результата - PullRequest
1 голос
/ 07 апреля 2011

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

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

Вот фрагмент из скрипта bash:

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.Спасибо за все ответы.

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

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

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

И вот ответ на вопрос, который вы не задавали:

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

0 голосов
/ 08 апреля 2011

Измените выбор, чтобы прочитать

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;
0 голосов
/ 07 апреля 2011

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

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

Псевдокод:

for each result in myResultSet
    if result != myResultSet[0]
    begin
        //include this result.
    end
next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...