MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

MariaDB JSON_UNQUOTE () Giải thích

Trong MariaDB, JSON_UNQUOTE() là một hàm tích hợp để loại bỏ dấu ngoặc kép khỏi giá trị JSON. Nói cách khác, nó “bỏ dấu ngoặc kép” một giá trị JSON.

Cú pháp

Cú pháp như sau:

JSON_UNQUOTE(val)

Ví dụ

Đây là một ví dụ để chứng minh.

SELECT JSON_UNQUOTE('"Eggs"');

Kết quả:

+------------------------+
| JSON_UNQUOTE('"Eggs"') |
+------------------------+
| Eggs                   |
+------------------------+

Ký tự thoát

Nếu giá trị chứa ký tự gạch chéo ngược (\ ), nó thường bị bỏ qua. Tuy nhiên, một số chuỗi nhất định liên quan đến dấu gạch chéo ngược có thể có ý nghĩa đặc biệt và có thể ảnh hưởng đến kết quả của JSON_UNQUOTE() .

Điều này sẽ phụ thuộc vào việc chế độ SQL có được đặt thành NO_BACKSLASH_ESCAPES hay không . Khi chế độ SQL được đặt thành NO_BACKSLASH_ESCAPES , điều này sẽ vô hiệu hóa việc sử dụng ký tự gạch chéo ngược làm ký tự thoát trong chuỗi, làm cho nó tương đương với một ký tự bình thường.

Nếu không, các chuỗi sau sẽ đúng:

Trình tự thoát Ký tự
\" Dấu ngoặc kép (" )
\b Dấu gạch chéo ngược
\f Nguồn cấp dữ liệu định dạng
\n Dòng mới (nguồn cấp dữ liệu dòng)
\r Trả hàng
\t Tab
\\ Dấu gạch chéo ngược (\ )
\uXXXX UTF-8 byte cho giá trị Unicode XXXX

Ví dụ:

SELECT JSON_UNQUOTE('Feeling\tGood');

Kết quả:

+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling	Good                  |
+-------------------------------+

Ở đây, tôi đã sử dụng \t để thêm một ký tự tab trong chuỗi.

Nếu tôi đặt chế độ SQL thành NO_BACKSLASH_ESCAPES , trình tự không có ý nghĩa đặc biệt và trình tự nghĩa đen được đưa vào đầu ra mà không cần giải thích:

SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';

SELECT JSON_UNQUOTE('Feeling\tGood');

Kết quả:

+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling\tGood                 |
+-------------------------------+

Đối số rỗng

Nếu đối số là NULL , kết quả là NULL :

SELECT JSON_UNQUOTE(null);

Kết quả:

+--------------------+
| JSON_UNQUOTE(null) |
+--------------------+
| NULL               |
+--------------------+

Đếm tham số không chính xác

Đang gọi JSON_UNQUOTE() không có đối số dẫn đến lỗi:

SELECT JSON_UNQUOTE();

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'

Điều này cũng tương tự khi bạn cung cấp quá nhiều đối số:

SELECT JSON_UNQUOTE('a', 'b');

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách CHARSET () hoạt động trong MariaDB

  2. Tìm tất cả các giá trị không phải dạng số trong một cột trong MariaDB

  3. Hàm chuỗi MariaDB (Danh sách đầy đủ)

  4. Giải thích về toán tử MariaDB EXCEPT

  5. Cách kết nối các chương trình C ++ với MariaDB