В 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'