W MariaDB, JSON_UNQUOTE() to wbudowana funkcja, która usuwa cudzysłowy z wartości JSON. Innymi słowy, „usuwa cytat” z wartości JSON.
Składnia
Składnia wygląda tak:
JSON_UNQUOTE(val) Przykład
Oto przykład do zademonstrowania.
SELECT JSON_UNQUOTE('"Eggs"'); Wynik:
+------------------------+
| JSON_UNQUOTE('"Eggs"') |
+------------------------+
| Eggs |
+------------------------+ Znaki ucieczki
Jeśli wartość zawiera znak odwrotnego ukośnika (\ ), jest zwykle ignorowana. Jednak niektóre sekwencje zawierające ukośnik odwrotny mogą mieć specjalne znaczenie i mogą wpływać na wynik JSON_UNQUOTE() .
Będzie to zależeć od tego, czy tryb SQL jest ustawiony na NO_BACKSLASH_ESCAPES . Gdy tryb SQL jest ustawiony na NO_BACKSLASH_ESCAPES , wyłącza to używanie znaku odwrotnego ukośnika jako znaku zmiany znaczenia w łańcuchach, co czyni go równoważnym ze zwykłym znakiem.
W przeciwnym razie poniższe sekwencje będą prawdziwe:
| Sekwencja ucieczki | Znak |
|---|---|
\" | Podwójny cytat (" ) |
\b | Odwrotny ukośnik |
\f | Formularz |
\n | Nowy wiersz (znak nowego wiersza) |
\r | Zwrot karetki |
\t | Karta |
\\ | Ukośnik odwrotny (\ ) |
\uXXXX | UTF-8 bajtów dla wartości Unicode XXXX |
Przykład:
SELECT JSON_UNQUOTE('Feeling\tGood'); Wynik:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling Good |
+-------------------------------+
Tutaj użyłem \t sekwencja, aby dodać znak tabulacji w ciągu.
Jeśli ustawię tryb SQL na NO_BACKSLASH_ESCAPES , sekwencja nie ma specjalnego znaczenia, a sekwencja dosłowna jest dołączana do wyniku bez interpretacji:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood'); Wynik:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling\tGood |
+-------------------------------+ Argumenty zerowe
Jeśli argumentem jest NULL , wynik to NULL :
SELECT JSON_UNQUOTE(null); Wynik:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Nieprawidłowa liczba parametrów
Wywołanie JSON_UNQUOTE() bez argumentu powoduje błąd:
SELECT JSON_UNQUOTE(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Tak samo jest, gdy podajesz zbyt wiele argumentów:
SELECT JSON_UNQUOTE('a', 'b'); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'