LINUX.ORG.RU

скрипт, mysql, построчная обработка результата выполнения запроса.

 , , , ,


0

1

Задача: выполнить запрос к mysql бд и получить набор строк, каждую из которых нужно разобрать на переменные. Т.е. выполнить построчную обработку результата sql-запроса. Внимание! Вопрос! BASH, PYTHON или LUA? Нужно чтобы работало просто быстро и красиво. Да, я не спрашиваю КАК. Я спрашиваю на чем лучше?


А что именно предполагается делать? Решить это в рамках самого SQL никак? Если в столбце хранится куча всего, почему столбец не разделён? А так любой выбирай, хоть C++.

peregrine ★★★★★
()

Делай это хоть вручную, вообще не важно на каком языке.

kachan ★★
()

Какой больше нравится тот и бери. Разницы особой не будет. Я бы взял python.

Norgat ★★★★★
()
Ответ на: комментарий от peregrine

Поясню, во-первых, debian-сервер. Во-вторых, в C/C+/C++ я ни в зуб ногой. В bash могу немного, с остальными вариантами планирую разобраться. В-третьих, все в базе разделено и по полочкам. Просто работать нужно с несколькими полями одной записи. Т.е. с одной строки из разных столбцов я получу, например, 3 переменные. Которые потом должен буду использовать. Соответственно в самом запросе мне может вернуться более одной такой строки. Вот как-то так. Надеюсь, понятно объяснил.

kerby
() автор топика
Ответ на: комментарий от kerby

А где планируется использование? В какой-то программе или скрипте? Вот там и разбирай свою строку.

peregrine ★★★★★
()
Ответ на: комментарий от kerby

mysql -Bse 'select ... ' | while read -r line; do echo -n «${line}» | awk '{print $1,$2,$3}'; done

anonymous
()

Ты не понимаешь, что такое базы данных и как работают биндинги базы к языкам. То, что ты хочешь - встроенный функционал любого биндинга любой базы данных к любому языку.

eternal_sorrow ★★★★★
()

На баше с мусклем работать легко и приятно:

#!/bin/bash

MYSQL=«/usr/bin/mysql -u USER -h HOST -pPASS DB»

echo «select * from TABLE;» | $MYSQL | while read i ; do

echo "-$i-"

done

Ну и внутри цикла разбирай через cut строки по полям и делай с ними чего хочешь. Первая строка будет строкой с именами полей в таблице.

Учти, что из цикла не выйдет ни одна переменная, потому результат работы цикла желательно писать во временный файл, а после цикла его забирать.

slamd64 ★★★★★
()
Последнее исправление: slamd64 (всего исправлений: 2)

Простые вещи я делаю на баше, чуть более продвинутые на python+sqlalchemy. Последние потребует больше временных инвестиций.

true_admin ★★★★★
()

Возьми python + sqlalchemy. Можно и bash, но мне кажется на python проще и удобнее.

conformist ★★★
()
Ответ на: комментарий от bl

Спасибо. Идея про курсоры отличная.

kerby
() автор топика

Только питон, просто потому, что заточен На баше это вообще непонятно как делать он с базами не умеет

ism ★★★
()
Ответ на: комментарий от ism

Спасибо всем. Остановился на python. Пока все нравится. Нужную мне задачу реализует прекрасно. Думаю изучить язык более глубоко.

kerby
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.