×

Lấy khóa từ JSON với JSON_KEYS() trong MySQL

Công nghệ quản lý cơ sở dữ liệu là một lĩnh vực không ngừng phát triển, nhằm đáp ứng nhu cầu ngày càng cao của việc lưu trữ và phân tích dữ liệu. Một trong những định dạng phổ biến nhất hiện nay là JSON (JavaScript Object Notation). JSON không chỉ được sử dụng để trao đổi dữ liệu giữa máy khách và máy chủ web mà còn trở thành một phần không thể thiếu trong nhiều cơ sở dữ liệu như MySQL. Để làm việc với JSON trong MySQL, có rất nhiều công cụ và hàm hỗ trợ, trong đó hàm JSON_KEYS() là một ví dụ nổi bật.

Tại sao JSON lại quan trọng?

JSON đơn giản hóa việc lưu trữ và trao đổi dữ liệu phức hợp bằng một cấu trúc dĩa hẳn và dễ đọc. JSON giữ vai trò quan trọng trong việc phát triển ứng dụng hướng dịch vụ, nơi dữ liệu cần được chuyển đổi nhanh chóng và hiệu quả giữa các hệ thống khác nhau.

JSON trong MySQL

MySQL, kể từ phiên bản 5.7, đã hỗ trợ lưu trữ và làm việc với JSON một cách tiên tiến. Cụ thể hơn, các trường JSON có thể lưu trữ cấu trúc dữ liệu phức hợp mà không bị phá vỡ. Để truy xuất và làm việc trên dữ liệu JSON trong MySQL, có các hàm tiện ích được cung cấp, trong đó có hàm JSON_KEYS().

Giới thiệu về hàm JSON_KEYS()

Hàm JSON_KEYS() trong MySQL được sử dụng để lấy danh sách các khóa từ một đối tượng JSON. Cú pháp tổng quát của hàm như sau:

JSON_KEYS(json_doc)

Trong đó, json_doc là tài liệu JSON hoặc giá trị nằm trong tài liệu JSON mà bạn muốn trích xuất các khóa.

Cách sử dụng JSON_KEYS()

Ví dụ Cơ Bản

Giả sử bạn có một bảng tên là products trong đó có một cột dạng JSON tên là details. Nội dung của cột details như sau:

{
    "name": "Laptop",
    "brand": "HP",
    "price": 1200
}

Để lấy danh sách các khóa từ cột details, bạn có thể sử dụng truy vấn sau:

SELECT JSON_KEYS(details) as keys
FROM products;

Lấy khóa từ đối tượng JSON lồng nhau

Trong nhiều trường hợp, dữ liệu JSON có thể lồng nhau, nghĩa là giá trị của một khóa có thể là một đối tượng JSON khác. Giả sử nội dung JSON của cột details trong bảng products được mở rộng thêm như sau:

{
    "name": "Laptop",
    "brand": "HP",
    "price": 1200,
    "specs": {
        "processor": "Intel i7",
        "ram": "16GB",
        "storage": "512GB SSD"
    }
}

Để lấy danh sách các khóa từ đối tượng JSON con specs, bạn có thể sử dụng:

SELECT JSON_KEYS(JSON_EXTRACT(details, '$.specs')) as spec_keys
FROM products;

Ở đây, JSON_EXTRACT() được dùng để lấy đối tượng con specs trước khi sử dụng hàm JSON_KEYS().

Kết luận

Hàm JSON_KEYS() là một công cụ vô cùng mạnh mẽ và hữu ích khi làm việc với dữ liệu dạng JSON trong MySQL. Bằng cách sử dụng hàm này, bạn có thể dễ dàng truy xuất và xử lý các khóa từ tài liệu JSON, giúp việc quản lý và phân tích dữ liệu trở nên đơn giản hơn rất nhiều. Việc hiểu và vận dụng hàm JSON_KEYS() cùng các hàm hỗ trợ khác sẽ giúp tối ưu hóa quy trình làm việc với dữ liệu JSON trong MySQL.

Comments