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

SQLite Quote()のしくみ

    SQLite quote() 関数を使用すると、文字列をエスケープして、SQLステートメントに含めるのに適したものにすることができます。

    文字列は一重引用符で囲まれ、内部引用符はエスケープされます。

    BLOBは16進リテラルとしてエンコードされます。

    NUL文字が埋め込まれた文字列は、SQLでは文字列リテラルとして表現できないことに注意してください。 NUL文字が埋め込まれた文字列を含めると、返される文字列リテラルは最初のNULの前で切り捨てられます。

    quote()の簡単な例を次に示します。 それがどのように機能するかを示すための機能。

    SELECT 
      'Money',
      quote('Money');

    結果:

    'Money'     quote('Money')        
    ----------  ----------------------
    Money       'Money'               

    2番目の列が一重引用符で返されることに注意してください。

    SQLステートメントの生成

    quote() SQL INSERTを生成する必要がある場合は、この関数が便利です。 既存のデータベーステーブルの内容からのステートメント。

    たとえば、次の製品という表があります。 :

    ProductId   ProductName     Price     
    ----------  --------------  ----------
    1           Homer's Widget  10.0      
    2           Peter's Widget  20.75     
    3           Bob's Widget    15.0      

    各製品名には一重引用符が含まれています。 INSERTを生成したい場合 これらの値を使用してステートメントを作成する場合は、一重引用符をエスケープする必要があります。

    INSERTを生成する例を次に示します。 このテーブルのステートメント、およびquote()の使用 一重引用符をエスケープします。

    SELECT 
      'INSERT INTO Products2 (ProductName, Price) 
       VALUES (' || quote(ProductName) || ', ' || Price || ');'
    FROM Products;

    結果:

    INSERT INTO Products2 (ProductName, Price) 
       VALUES ('Homer''s Widget', 10.0);                        
    INSERT INTO Products2 (ProductName, Price) 
       VALUES ('Peter''s Widget', 20.75);                       
    INSERT INTO Products2 (ProductName, Price) 
       VALUES ('Bob''s Widget', 15.0);    


    1. MigrationSchemaMissing(django_migrationsテーブルを作成できません(%s)%exc)

    2. MySQLでサーバー照合を表示する方法

    3. PostgreSQL ConferenceEurope2018で学んだ5つのクールなこと

    4. バイト長に基づいてUTF8文字列を短縮する最良の方法