@8x8z

Как получить значения полей из MySQL в sh — скрипте?

Часть sh - скрипт
sqlget='select id, code, name, brand  from table where id="'$id'"';
  result=$(mysql -h$host -u $dbuser -p$dbpass $db -e "$sqlget" -N -s);
      echo $result;
      code=$(echo $result | cut -d " " -f 2);
      name=$(echo $result | cut -d " " -f 3);
      brand=$(echo $result | cut -d " " -f 4);

Все работает, при условии, если в поле нет пробела. Если есть, он считается разделителем и соответственно, следующее часть строки поля попадает в другую переменную.
Вариант с массивами не проходит - это только в bash, но не в sh.
Есть еще вариант - INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ' ,'. но в этом случае нужно использовать secure_file_priv. И возникает вопрос: Как направить результат запроса не файл, а в переменную. Еще не пробовал.
Ну и самый "не красивый" вариант - выдергивать каждое поле отдельным запросом не рассматриваю. )
Какие еще есть варианты?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 2
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы