сделать несколько вещей с набором результатов sqlite3 - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть база данных sqlite3 на хосте Ubuntu.Я хотел бы запустить скрипт bash для манипулирования некоторыми содержащимися данными.

В принципе, у меня есть выражение sql.Я хотел бы обработать несколько команд с результатами этого запроса (т. е. набор результатов).запрос охватывает несколько таблиц, чтобы получить полные данные, которые мне нужны.

для каждой возвращаемой строки, я хотел бы записать определенные поля в текстовый файл (для последующего использования) и после завершения я хотел бы обновитьстрока.это обновление для 1 поля в 1 таблице.

в настоящее время, у меня есть только следующее, которое производит требуемый выходной файл из всех строк:

sqlite3 database.db
.output xbmc_music_lastplayed_toitunes.txt

SELECT s.strTitle, art.strArtist, a.strAlbum, s.iTimesPlayed, s.lastplayed
FROM song as s, album as a, artist as art
WHERE s.idAlbum = a.idAlbum
AND s.idArtist = art.idArtist
AND s.iTimesPlayed > 0

я хотел бы иметь возможностьвыполните оба действия из 1 набора результатов, если это возможно.надеясь, что кто-то сможет обеспечить путь вперед.я привык иметь дело с программной обработкой БД, то есть с PHP, но в этом случае это делается более естественным образом для самого движка sqlite3.

большое спасибо заранее

1 Ответ

1 голос
/ 14 декабря 2011

Вы можете поместить все свои операторы sql (или команду dot) в query.sql.

$ cat query.sql | sqllite3 database.db

или

$ sqlite3 database.db
sqlite> .read query.sql

Я предпочитаю первый вариант. Потому что нет взаимодействия.

...