sql >> Databáze >  >> RDS >> Mysql

Jak zachovat zpětné lomítko při escapování uvozovek v MySQL – QUOTE()

Použití zpětného lomítka k uzavření jednoduchých uvozovek je běžně používaná technika, která zajišťuje, že jednoduché uvozovky nebudou narušovat práci MySQL s celým řetězcem.

Jednoduché uvozovky se používají k ohraničení řetězce, takže jediná uvozovka v samotném řetězci by mohla způsobit zmatek, pokud by nebyla správně uvozena. Pouhé vložení zpětného lomítka bezprostředně před uvozovku zajistí, že MySQL neukončí řetězec předčasně.

Mohou však nastat situace, kdy chcete, aby zpětné lomítko zůstalo. Například můžete mít v úmyslu použít řetězec v příkazu SQL, a proto chcete, aby byl nejprve správně escapován.

Zde se nachází QUOTE() funkce přichází.

MySQL QUOTE() funkce uvozuje řetězec, aby vytvořila výsledek, který lze použít jako správně escapovanou datovou hodnotu v příkazu SQL. Řetězec je vrácen v jednoduchých uvozovkách a s každou instancí zpětného lomítka (\ ), jednoduchá uvozovka (' ), ASCII NUL a Control+Z předchází zpětné lomítko.

Syntaxe funkce QUOTE()

Zde je návod, jak probíhá syntaxe:

QUOTE(str)

Kde str je (již) uniklý řetězec.

Příklad

Příklad to pravděpodobně vysvětluje lépe než moje vysvětlení:

SELECT QUOTE('Don\'t!') AS Result;

Výsledek:

+-----------+
| Result    |
+-----------+
| 'Don\'t!' |
+-----------+

Na první pohled si možná říkáte „ale nic se nestalo – výsledek je úplně stejný jako argument“. Nicméně právě proto je tato funkce užitečná. Pokud bychom nepoužili QUOTE() funkce, stalo by se toto:

SELECT 'Don\'t!' AS Result;

Výsledek:

+--------+
| Result |
+--------+
| Don't! |
+--------+

Takže pomocí QUOTE() zachováme jednoduché uvozovky a zpětné lomítko.

Samozřejmě, v mnoha případech je to přesně to, co chcete. V mnoha případech zpětné lomítko a okolní uvozovky měly být odstraněn. Ale mohou nastat případy, kdy budete chtít přesně to, co QUOTE() funkce dělá za vás.

Alternativa

QUOTE() Funkce vás ušetří od nutnosti dělat něco takového:

SELECT '''Don\\\'t!''' AS Result;

Výsledek:

+-----------+
| Result    |
+-----------+
| 'Don\'t!' |
+-----------+

Takže nás to ušetří nutnosti používat tři jednoduché uvozovky pro každou jednotlivou uvozovku a tři zpětná lomítka pro každé jedno zpětné lomítko.


  1. Vzorce pro výpočet zeměpisné blízkosti

  2. 4 důvody, proč byste měli ve svém plánování na rok 2020 upřednostňovat monitorování databáze

  3. Datový model pro aplikaci pro rezervaci lékařských schůzek

  4. Jak opravit „název profilu není platný“ při aktualizaci profilu pošty databáze v SQL Server (T-SQL)