В MariaDB, JSON_UNQUOTE() е вградена функция, която премахва кавички от JSON стойност. С други думи, той „отменя кавички“ JSON стойност.
Синтаксис
Синтаксисът е така:
JSON_UNQUOTE(val) Пример
Ето пример за демонстрация.
SELECT JSON_UNQUOTE('"Eggs"'); Резултат:
+------------------------+
| JSON_UNQUOTE('"Eggs"') |
+------------------------+
| Eggs |
+------------------------+ Escape символи
Ако стойността съдържа обратна наклонена черта (\ ), обикновено се игнорира. Въпреки това, някои последователности, включващи обратната наклонена черта, могат да имат специално значение и могат да повлияят на резултата от JSON_UNQUOTE() .
Това ще зависи от това дали режимът на SQL е настроен на NO_BACKSLASH_ESCAPES . Когато режимът на SQL е настроен на NO_BACKSLASH_ESCAPES , това деактивира използването на обратната наклонена черта като escape знак в низовете, което го прави еквивалентен на обикновен знак.
В противен случай следните последователности ще са верни:
| Изходна последователност | Характер |
|---|---|
\" | Двойни кавички (" ) |
\b | Обратна наклонена черта |
\f | Подаване на формуляр |
\n | Нов ред (повеждане на ред) |
\r | Връщане на карета |
\t | Раздел |
\\ | Обратна наклонена черта (\ ) |
\uXXXX | UTF-8 байта за Unicode стойност XXXX |
Пример:
SELECT JSON_UNQUOTE('Feeling\tGood'); Резултат:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling Good |
+-------------------------------+
Тук използвах \t последователност, за да добавите знак за табулация в низа.
Ако задам режима на SQL на NO_BACKSLASH_ESCAPES , последователността няма специално значение и буквалната последователност е включена в изхода без интерпретация:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood'); Резултат:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling\tGood |
+-------------------------------+ Нулеви аргументи
Ако аргументът е NULL , резултатът е NULL :
SELECT JSON_UNQUOTE(null); Резултат:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Неправилен брой параметри
Извикване на JSON_UNQUOTE() без аргумент води до грешка:
SELECT JSON_UNQUOTE(); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Същото е, когато предоставите твърде много аргументи:
SELECT JSON_UNQUOTE('a', 'b'); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'