SQLiteコマンドラインシェルを使用する場合、クエリ結果を文字列リテラルとしてフォーマットするオプションがあります。
これを行うには、「見積もり」モードに切り替えます。これを行うと、文字列は一重引用符で囲まれ、内部の一重引用符は二重化によってエスケープされます。また、ブロブは16進ブロブリテラル表記で表示され、数値はASCIIテキストとして表示され、NULL値は「NULL」として表示されます。
結果を二重引用符でフォーマットする必要がある場合は、csv
の使用を検討してください モード。
例
実例を示します。
.mode quote
SELECT * FROM Products;
結果:
1,'Widget Holder',139.49999999999999999 2,'Widget Opener',89.700000000000002838 3,'Bob''s Best Widget',374.19999999999998862 4,'Blue Widget',63.000000000000000001
ボブの最高のウィジェットに注意してください 3行目は、内部の単一引用符で二重引用符で囲まれています。
また、結果がコンマ区切りのリストで表示されていることにも気付くでしょう。
二重引用符は影響を受けないことに注意してください。このエントリをボブの「最高の」ウィジェットに更新するとどうなりますか? クエリを再度実行します。
UPDATE Products
SET ProductName = 'Bob''s "Best" Widget'
WHERE ProductId = 3;
SELECT * FROM Products;
結果:
1,'Widget Holder',139.49999999999999999 2,'Widget Opener',89.700000000000002838 3,'Bob''s "Best" Widget',374.19999999999998862 4,'Blue Widget',63.000000000000000001
設定を保存
SQLiteへの新しい接続を開くと、デフォルトの形式であるパイプ区切りのリストを使用してクエリ結果が出力されます。つまり、クエリ結果は引用されないため、.mode quote
を実行する必要があります。 接続するたびにもう一度。
接続するたびにこれを続ける必要がない場合は、設定を構成ファイルに保存できます。
これを行うには、テキストファイルに次のように入力します。
.mode quote
そして、そのファイルを.sqliterc
として保存します ホームディレクトリにあります。
これで、SQLiteコマンドラインシェルに接続するたびに、そのファイルが読み取られ、その設定が使用されます。
すでにファイルがある場合は、他の設定を維持したまま、単にファイルを更新することをお勧めします。