2011-12-14 12 views
0

私はubuntuホスト上にsqlite3データベースを持っています。私はいくつかの含まれているデータを操作するためのbashスクリプトを開始したいと思います。sqlite3の結果セットで複数のことを行う

基本的には、私はSQL文を理解しました。私は、このクエリの結果(すなわち、結果セット)で複数のコマンドを処理したいと思います。クエリは複数のテーブルにわたり、必要なすべてのデータを取得します。

返される行ごとに、(後で使用するために)テキストファイルに特定のフィールドを書きたいと思います。一度完了すると、行を更新したいと思います。この更新は、1つのテーブルの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 

は現在、私はすべての行の必要な出力ファイルを生成し、次のを持っています。誰かが将来の道を提供できることを望んでいる。私はdbのプログラムによる処理、すなわちPHPでの処理に慣れていましたが、この場合はsqlite3エンジン自体に対してよりネイティブに行われています。事前

答えて

1

多くのおかげであなたはquery.sqlにすべてのSQL文(またはdotコマンド)を置くことができます。

$ cat query.sql | sqllite3 database.db 

または

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

私は最初のオプションを好みます。相互作用がないからです。

関連する問題