sql >> データベース >  >> RDS >> SQLite

SQLiteクエリ結果で文字列を一重引用符で囲みます

    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コマンドラインシェルに接続するたびに、そのファイルが読み取られ、その設定が使用されます。

    すでにファイルがある場合は、他の設定を維持したまま、単にファイルを更新することをお勧めします。


    1. NodeJSMySQLダンプ

    2. MariaDBでCOLLATION()がどのように機能するか

    3. SQLiteそのような列はありません

    4. MySQLのLENGTH()とは何ですか?