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

MariaDB JSON_MERGE () Giải thích

Trong MariaDB, JSON_MERGE() là một hàm tích hợp giúp hợp nhất hai hoặc nhiều tài liệu JSON và trả về kết quả.

JSON_MERGE() hàm đã không được dùng nữa và để tránh các sự cố trong tương lai, bạn nên sử dụng JSON_MERGE_PATCH() chức năng thay thế. JSON_MERGE_PATCH() hàm là sự thay thế tuân thủ RFC 7396 cho JSON_MERGE() .

Cú pháp

Cú pháp như sau:

JSON_MERGE(json_doc, json_doc[, json_doc] ...)

Ở đâu json_doc là các tài liệu JSON để hợp nhất.

Ví dụ

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

SELECT JSON_MERGE('{"name":"Wag"}', '{"type":"Dog"}');

Kết quả:

+------------------------------------------------+
| JSON_MERGE('{"name":"Wag"}', '{"type":"Dog"}') |
+------------------------------------------------+
| {"name": "Wag", "type": "Dog"}                 |
+------------------------------------------------+

Chúng tôi có thể thấy rằng hai tài liệu đã được hợp nhất thành một.

Dưới đây là một ví dụ hợp nhất ba tài liệu:

SELECT JSON_MERGE(
    '{ "name" : "Wag" }', 
    '{ "type" : "Dog" }',
    '{ "score" : [ 9, 7, 8 ] }'
    ) AS Result;

Kết quả:

+----------------------------------------------------+
| Result                                             |
+----------------------------------------------------+
| {"name": "Wag", "type": "Dog", "score": [9, 7, 8]} |
+----------------------------------------------------+

Mảng

Một điểm khác biệt giữa JSON_MERGE()JSON_MERGE_PATCH() đó có phải là JSON_MERGE() không hợp nhất các mảng (JSON_MERGE_PATCH() không):

SELECT JSON_MERGE(
    '[1,2,3]', 
    '[4,5,6]'
    ) AS Result;

Kết quả:

+--------------------+
| Result             |
+--------------------+
| [1, 2, 3, 4, 5, 6] |
+--------------------+

Cố gắng điều này với JSON_MERGE_PATCH() chỉ dẫn đến mảng thứ hai được trả về.

Đối số rỗng

Nếu bất kỳ đối số nào là NULL , kết quả là NULL :

SELECT 
    JSON_MERGE('{"a":1}', null) AS a,
    JSON_MERGE(null, '{"a":1}') AS b,
    JSON_MERGE(null, null) AS c;

Kết quả:

+------+------+------+
| a    | b    | c    |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+

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

Việc gọi hàm mà không có bất kỳ đối số nào dẫn đến lỗi:

SELECT JSON_MERGE();

Kết quả:

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

Điều này cũng tương tự khi bạn chỉ cung cấp một đối số:

SELECT JSON_MERGE('{"a":1}');

Kết quả:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khắc phục:Quyền truy cập bị từ chối đối với người dùng ‘root’ @ ’localhost’ trong MariaDB

  2. Bảng tạm thời của MariaDB là gì?

  3. Cách thay thế MySQL hoặc MariaDB Master trung gian bằng máy chủ Binlog sử dụng MaxScale

  4. Danh sách đầy đủ các đối chiếu được hỗ trợ bởi MariaDB

  5. MariaDB SESSION_USER () Giải thích