sql >> Database teknologi >  >> RDS >> SQLite

Sådan fungerer SQLite Quote()

SQLite quote() funktionen giver dig mulighed for at undslippe en streng, så den er egnet til medtagelse i en SQL-sætning.

Strenge er omgivet af enkelte citater med escapes på interiør citater.

BLOB'er er kodet som hexadecimale bogstaver.

Bemærk, at strenge med indlejrede NUL-tegn ikke kan repræsenteres som strengliteraler i SQL. Hvis du inkluderer strenge med indlejrede NUL-tegn, afkortes den returnerede streng-literal før den første NUL.

Eksempel

Her er et simpelt eksempel på quote() funktion for at demonstrere, hvordan det virker.

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

Resultat:

'Penge'-citat('Penge') ---------- ----------------------Penge 'Penge'  

Bemærk, at den anden kolonne returneres med enkelte anførselstegn.

Generering af en SQL-sætning

quote() funktion kan være nyttig, hvis du nogensinde har brug for at generere en SQL INSERT sætning fra indholdet af en eksisterende databasetabel.

For eksempel har jeg følgende tabel kaldet Produkter :

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

Hvert produktnavn indeholder et enkelt anførselstegn. Hvis jeg ville generere en INSERT udsagn med disse værdier, så bliver jeg nødt til at undslippe de enkelte anførselstegn.

Her er et eksempel på generering af INSERT udsagn fra denne tabel og ved hjælp af quote() for at undslippe de enkelte anførselstegn.

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

Resultat:

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


  1. Hvordan frigøres mulige Postgres rækkelåse?

  2. Ydeevne overraskelser og antagelser:STRING_SPLIT()

  3. Er der en måde i ORACLE at forbinde flere rækkelinjer til en enkelt ved at bruge to tabeller, hvor de endelige værdier er adskilt med kommaer?

  4. MariaDB 10.6 og NextCloud:COMPRESSED Row er skrivebeskyttet som standard