用sqlite3结果集做多个事情

时间:2011-12-14 09:43:23

标签: bash sqlite resultset

我在ubuntu主机上有一个sqlite3数据库。我想启动一个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 个答案:

答案 0 :(得分:1)

您可以将所有sql语句(或dot命令)放在query.sql中。

$ cat query.sql | sqllite3 database.db

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

我更喜欢第一种选择。因为没有互动。