SQLite json_group_array()
hàm là một hàm tổng hợp trả về một mảng JSON bao gồm tất cả các giá trị trong tập hợp.
Nói cách khác, nó xây dựng một mảng từ các giá trị được cung cấp bởi đối số của nó.
Cú pháp
json_group_array(X)
Ở đâu X
đại diện cho / s phần tử mà mảng kết quả sẽ bao gồm.
Ví dụ
Dưới đây là một ví dụ đơn giản để chứng minh:
SELECT json_group_array( "Fritz" );
Kết quả:
["Fritz"]
Chúng ta có thể thấy rằng một mảng đã được trả về, với giá trị mà chúng tôi đã cung cấp.
Tuy nhiên, sức mạnh thực sự của chức năng này được chứng minh trong các tình huống sử dụng dữ liệu tổng hợp (như trong các ví dụ cơ sở dữ liệu bên dưới). Rốt cuộc, chúng ta có thể chỉ sử dụng json_array()
chức năng cho ví dụ trên:
SELECT json_array( "Fritz" );
Kết quả:
["Fritz"]
Như đã đề cập, sức mạnh thực sự của chức năng này là xử lý dữ liệu tổng hợp. Do đó, json_group_array()
thường sẽ được sử dụng khi truy vấn cơ sở dữ liệu.
Ví dụ về cơ sở dữ liệu
Giả sử chúng ta có bảng sau:
SELECT * FROM Pets;
Kết quả:
+-------+---------+--------+ | PetId | PetName | TypeId | +-------+---------+--------+ | 1 | Homer | 3 | | 2 | Yelp | 1 | | 3 | Fluff | 2 | | 4 | Brush | 4 | +-------+---------+--------+
Chúng ta có thể thấy rằng có ba cột và chúng ta có thể thấy tên của chúng.
Chúng ta có thể sử dụng json_group_array()
như thế này:
SELECT json_group_array(TypeId)
FROM Pets;
Kết quả:
[3,1,2,4]
Ở đây, tôi đã tạo một mảng bao gồm tất cả TypeId
giá trị.
Chúng ta có thể tiến thêm một bước nữa và chuyển một hàm JSON khác làm đối số cho json_group_array()
.
Ví dụ:nếu chúng ta muốn tạo một đối tượng JSON cho mỗi hàng trong cơ sở dữ liệu, chúng ta có thể sử dụng json_object()
trên bảng như sau:
SELECT json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
FROM Pets;
Kết quả:
{"PetId":1,"PetName":"Homer","TypeId":3} {"PetId":2,"PetName":"Yelp","TypeId":1} {"PetId":3,"PetName":"Fluff","TypeId":2} {"PetId":4,"PetName":"Brush","TypeId":4}
Sau đó, chúng ta có thể sử dụng json_group_array()
hàm cung cấp một mảng bên ngoài:
SELECT json_group_array(
json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
)
FROM Pets;
Kết quả:
[{"PetId":1,"PetName":"Homer","TypeId":3},{"PetId":2,"PetName":"Yelp","TypeId":1},{"PetId":3,"PetName":"Fluff","TypeId":2},{"PetId":4,"PetName":"Brush","TypeId":4}]
Bây giờ, tất cả các tài liệu JSON được tạo bởi json_object()
nằm trong một mảng được tạo ra bởi json_group_array()
.