Извлечение изображений из таблиц в mysql и запуск base64 для их декодирования перед записью в файловую систему - PullRequest
0 голосов
/ 10 марта 2020

Мне нужна помощь. Я в замешательстве.

Я пытаюсь вытащить последнее изображение, хранящееся в BLOB-объекте, из 5 таблиц, применить к ним base64, прежде чем сохранять их как изображения. мой код ниже.

Моя первоначальная проблема в том, что я не могу передать переменную tableId в запрос mysql.

Имена таблиц: 100001, 100002, 100003, 100004, 100005 Столбцы таблицы совпадают с столбец 'image', содержащий BLOB-объекты, и столбец 'Time', содержащий значения временных меток.

#!/bin/bash

total=5 #value to increment the devices
tablecount=100000
    for ((i=1; i<=$total; i++))
    do
tableId=$(($tablecount + $i))
echo ${image} | base64 -d > images/$tableID.jpg
done < <(echo "SELECT image, Time FROM table_'$tableID' ORDER BY Time DESC LIMIT 1;" | mysql mydb -u someuser -pPassword)

1 Ответ

0 голосов
/ 10 марта 2020

Просто удалите одинарные кавычки, они не позволят оболочке расширять текст. Также вам нужно выполнить ваш запрос внутри l oop.

for ((i=1; i<=$total; i++))
do
    tableId=$(($tablecount + $i))
    echo "SELECT image FROM table_$tableID ORDER BY Time DESC LIMIT 1;" | mysql -sN -u someuser -pPassword mydB | base64 -d > "file$tableId.jpg"
done

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

Здесь тестовый код и результат для l oop part:

$ bash t.sh
SELECT image FROM table_10001 ORDER BY Time DESC LIMIT 1;
SELECT image FROM table_10002 ORDER BY Time DESC LIMIT 1;
SELECT image FROM table_10003 ORDER BY Time DESC LIMIT 1;
SELECT image FROM table_10004 ORDER BY Time DESC LIMIT 1;
SELECT image FROM table_10005 ORDER BY Time DESC LIMIT 1;
$ cat t.sh
total=5
tablecount=10000
for (( i=1 ; i<=$total; i++))
do
    tableId=$(($tablecount + $i))
    echo "SELECT image FROM table_$tableId ORDER BY Time DESC LIMIT 1;" | cat
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...