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

MariaDB JSON_OBJECT () Giải thích

Trong MariaDB, JSON_OBJECT() là một hàm tích hợp trả về một đối tượng JSON có chứa các cặp khóa / giá trị được cung cấp dưới dạng đối số.

Cú pháp

Cú pháp như sau:

JSON_OBJECT([key, value[, key, value] ...])

Hàm chấp nhận bất kỳ số lượng cặp khóa / giá trị nào.

Danh sách khóa / giá trị cũng có thể để trống.

Ví dụ

Dưới đây là một ví dụ đơn giản để chứng minh chức năng:

SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");

Kết quả:

+-----------------------------------------------+
| JSON_OBJECT("name", "Homer", "type", "Idiot") |
+-----------------------------------------------+
| {"name": "Homer", "type": "Idiot"}            |
+-----------------------------------------------+

Không tranh luận

Là mentionend, danh sách đối số có thể trống, trong trường hợp đó, một đối tượng trống sẽ được trả về:

SELECT JSON_OBJECT();

Kết quả:

+---------------+
| JSON_OBJECT() |
+---------------+
| {}            |
+---------------+

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

Tuy nhiên, nếu bạn cung cấp các đối số, chúng phải là một số chẵn đối số (để mỗi khóa có một giá trị tương ứng).

Đây là những gì sẽ xảy ra khi tôi chỉ chuyển một đối số vào JSON_OBJECT() :

SELECT JSON_OBJECT("name");

Kết quả:

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

Cùng một lỗi xảy ra nếu tôi chuyển ba đối số:

SELECT JSON_OBJECT("name", "Homer", "type");

Kết quả:

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

Và cứ thế…

Tên khóa rỗng

Tài liệu MariaDB tuyên bố rằng lỗi được trả về nếu bất kỳ tên khóa nào là NULL .

Tuy nhiên, tôi nhận được một kết quả khác:

SELECT JSON_OBJECT(null, null);

Kết quả:

+-------------------------+
| JSON_OBJECT(null, null) |
+-------------------------+
| {"": null}              |
+-------------------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cho các thành phần cơ sở dữ liệu của bạn khả dụng cao (HA) thông qua bộ cân bằng tải

  2. Cách bảo vệ cơ sở dữ liệu MySQL hoặc MariaDB của bạn khỏi SQL Injection:Phần một

  3. Bảo mật sao lưu MySQL:Hướng dẫn

  4. MySQL &MariaDB Query Caching Với ProxySQL &ClusterControl

  5. Cơ sở dữ liệu MySQL của tôi đã hết dung lượng đĩa