sqlite3 -将多个命令合并到一行中

4smxwvx5  于 2023-03-30  发布在  SQLite
关注(0)|答案(2)|浏览(226)

在sqlite提示符下运行以下命令:

.headers on; SELECT _id,_data,parent FROM files where _data like '%Pictures%'

将得到一个错误:

Usage: .headers on|off

但是一个接一个地运行两个命令可以很好地工作。
将多个命令合并到一行中的正确方法是什么?

cld4siwp

cld4siwp1#

“.header”是sqlite3命令工具的命令,而不是SQL本身。您不能以您希望的方式将sqlite3命令与SQL组合。

qhhrdooz

qhhrdooz2#

好的,这个搜索结果和lucky1928的评论让我注意到这对所有普通shell都有效

echo '.headers on
SELECT _id,_data,parent FROM files where _data like '\''%Pictures%'\''
' | sqlite3 mydatabase.db

多行参数必须提供给echo命令,它不能作为sqlite3命令的直接参数,因为sqlite3不支持在命令行上使用单个参数执行多行sqlite3命令。
但是,这也是可行的:

sqlite3 mydatabase.db '.headers on' 'SELECT _id,_data,parent FROM files where _data like '\''%Pictures%'\''

也就是说,将行作为sqlite3命令行的单独参数。

相关问题