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

JSON_TYPE () - Nhận loại Giá trị JSON trong MySQL

Trong MySQL, JSON_TYPE() hàm trả về kiểu của một giá trị JSON. Cụ thể hơn, nó trả về utf8mb4 chuỗi cho biết loại của giá trị.

Bạn cung cấp giá trị JSON làm đối số.

Cú pháp

Cú pháp như sau:

JSON_TYPE(json_val)

Ở đâu json_val là giá trị JSON để trả về kiểu. Đây có thể là một đối tượng, một mảng hoặc một kiểu vô hướng.

Ví dụ 1 - Đối tượng

Dưới đây là một ví dụ khi giá trị là một đối tượng.

SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT JSON_TYPE(@data) 'JSON Type';

Kết quả:

+-----------+
| JSON Type |
+-----------+
| OBJECT    |
+-----------+

Ví dụ 2 - Mảng

Đây là một ví dụ về mảng.

SET @data = '[1, 2, 3]';
SELECT JSON_TYPE(@data) 'JSON Type';

Kết quả:

+-----------+
| JSON Type |
+-----------+
| ARRAY     |
+-----------+

Ví dụ 3 - Trích xuất dữ liệu từ một mảng

Bạn cũng có thể lấy kiểu của các phần tử riêng lẻ trong mảng.

SET @data = '[1, 2, 3]';
SELECT 
  JSON_EXTRACT(@data, '$[1]') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';

Kết quả:

+------+-----------+
| Data | JSON Type |
+------+-----------+
| 2    | INTEGER   |
+------+-----------+

Ví dụ 4 - Trích xuất dữ liệu từ một đối tượng

Điều tương tự cũng áp dụng cho các thành viên của một đối tượng.

SET @data = '{"Name": "Homer", "Stupid": "True"}';
SELECT 
  JSON_EXTRACT(@data, '$.Stupid') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';

Kết quả:

+--------+-----------+
| Data   | JSON Type |
+--------+-----------+
| "True" | STRING    |
+--------+-----------+

Trong trường hợp đó, giá trị là chuỗi ký tự "True" .

Đây là một ví dụ khác, nhưng lần này sử dụng giá trị boolean true .

SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT 
  JSON_EXTRACT(@data, '$.Stupid') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';

Kết quả:

+------+-----------+
| Data | JSON Type |
+------+-----------+
| true | BOOLEAN   |
+------+-----------+

Ví dụ 5 - Truy vấn Cơ sở dữ liệu

Ví dụ này sử dụng một cột cơ sở dữ liệu.

SELECT 
  Contents,
  JSON_TYPE(Contents) 'Contents',
  JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name'
FROM Collections 
WHERE CollectionId = 4;

Kết quả:

+--------------------------------+----------+--------+
| Contents                       | Contents | Name   |
+--------------------------------+----------+--------+
| {"Name": "Homer", "Stupid": 1} | OBJECT   | STRING |
+--------------------------------+----------+--------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL không thành công trên:mysql ERROR 1524 (HY000):Plugin 'auth_socket' không được tải

  2. Sử dụng kết nối liên tục PHP-MySQL để chạy blog WordPress

  3. Cách hàm LOAD_FILE () hoạt động trong MySQL

  4. Cách tạo bảng trong MySQL Workbench bằng GUI

  5. Đặt hàng trước COUNT mỗi giá trị