Khi làm việc với JSON trong MySQL, đôi khi chúng ta cần lấy giá trị từ các đoạn JSON mà không muốn xuất hiện dấu nháy kép đi kèm. Đây là lúc hàm JSON_UNQUOTE()
trở nên rất hữu ích. Hàm này giúp loại bỏ dấu nháy kép từ chuỗi JSON, giúp dữ liệu rõ ràng và dễ xử lý hơn.
JSON và MySQL
JSON (JavaScript Object Notation) là một định dạng dữ liệu phổ biến được sử dụng để biểu diễn các đối tượng và mảng dữ liệu. Với tính chất dễ đọc và dễ phân tích, JSON đã trở thành một thành phần quan trọng trong việc trao đổi dữ liệu giữa các ứng dụng web và máy chủ.
MySQL từ phiên bản 5.7 đã hỗ trợ lưu trữ và truy vấn dữ liệu JSON, giúp việc xử lý dữ liệu JSON trên cơ sở dữ liệu quan hệ trở nên dễ dàng hơn. Các hàm JSON trong MySQL, chẳng hạn như JSON_UNQUOTE()
, giúp việc làm việc với JSON hiệu quả hơn.
Hàm JSON_UNQUOTE()
Hàm JSON_UNQUOTE()
trong MySQL được sử dụng để loại bỏ dấu nháy kép từ một chuỗi JSON. Khi bạn trích xuất một giá trị từ JSON bằng cách sử dụng ->>
hoặc ->
, giá trị kết quả thường đi kèm với dấu nháy kép, đặc biệt nếu đó là một chuỗi ký tự. Hàm này loại bỏ dấu nháy kép để trả về chuỗi gốc.
Cú pháp
JSON_UNQUOTE(json_val)
json_val
: Đây là giá trị JSON mà bạn muốn loại bỏ dấu nháy kép.
Ví dụ minh họa
Giả sử chúng ta có một bảng users
lưu trữ thông tin người dùng dưới dạng JSON:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
data JSON
);
INSERT INTO users (data) VALUES
('{"name": "Nguyen Van A", "age": 30}'),
('{"name": "Le Thi B", "age": 25}');
Bây giờ, chúng ta muốn lấy tên của người dùng mà không có dấu nháy kép đi kèm:
SELECT JSON_UNQUOTE(data->"$.name") AS name FROM users;
Kết quả sẽ là:
+------------+
| name |
+------------+
| Nguyen Van A |
| Le Thi B |
+------------+
Ở đây, hàm JSON_UNQUOTE()
đã giúp chúng ta loại bỏ dấu nháy kép quanh các giá trị tên.
Kết hợp với các hàm khác
Hàm JSON_UNQUOTE()
có thể được kết hợp với các hàm JSON khác trong MySQL để xử lý dữ liệu một cách linh hoạt. Ví dụ, chúng ta có thể sử dụng hàm này với JSON_EXTRACT()
để trích xuất và loại bỏ dấu nháy kép từ các đường dẫn JSON phức tạp hơn:
SELECT JSON_UNQUOTE(JSON_EXTRACT(data, '$.name')) AS name FROM users;
Kết quả cũng sẽ tương tự như ví dụ trước đó:
+------------+
| name |
+------------+
| Nguyen Van A |
| Le Thi B |
+------------+
Kết luận
Hàm JSON_UNQUOTE()
là một công cụ hữu ích khi làm việc với dữ liệu JSON trong MySQL. Nó giúp loại bỏ dấu nháy kép từ các chuỗi JSON, giúp dữ liệu dễ dàng đọc và xử lý hơn. Bằng cách hiểu và sử dụng hàm này, bạn có thể cải thiện hiệu suất và độ rõ ràng của bất kỳ truy vấn MySQL nào liên quan đến JSON.
Comments