Vì vậy, trong JavaScript, tôi có một mảng trông như thế này:
[{x1:0,x2:2000,y:300},{x1:50,x2:250,y:500}]
Và tôi muốn lưu trữ nó trong một trường duy nhất trong cơ sở dữ liệu của tôi. Tôi đã nghĩ về việc bằng cách nào đó làm cho nó trở thành một chuỗi và sau đó lưu nó dưới dạng văn bản, nhưng tôi không thực sự biết một cách rất hiệu quả và "thông minh" để làm điều đó. Tôi cũng đã nghe nói về loại trường Varbinary, nhưng tôi không biết làm thế nào để viết và đối tượng/mảng thành một trong những trường đó và làm thế nào để đọc nó ...
Điều tôi thực sự thích nhất sẽ là nếu nó sẽ tự động được đọc như một mảng. MySQL-plugin của tôi [hoặc tuy nhiên được gọi trong JS] trả về các truy vấn của tôi dưới dạng mảng các đối tượng như tốt:
[{id:0,bla:"text"},{id:0,bla:"text"}]
Đối với một truy vấn trong một bảng với ID Colrumns và BLA.
Nói rằng mảng của tôi được lưu trữ trong BLA, tôi muốn đối tượng tôi có thể trông giống hệt như thế này khi nó được trả lại [tuy nhiên nếu điều đó là không thể, tôi vẫn ổn với một giải pháp thay thế].
[{id:0,bla:[{x1:0,x2:2000,y:300},{x1:50,x2:250,y:500}]},{id:0,bla:[{x1:0,x2:2000,y:300},{x1:50,x2:250,y:500}]}]
Vì vậy, về cơ bản tôi sẽ nhận được một mảng chứa hai đối tượng, mỗi đối tượng có các thuộc tính bla và id, trong đó bLA là một mảng các đối tượng có thuộc tính x1, x2 và y.
Đăng vào ngày 26 tháng 10 năm 2021
Hướng dẫn nhanh về lưu trữ kiểu dữ liệu mảng bằng máy chủ cơ sở dữ liệu MySQL
Mặc dù array
là một trong những loại dữ liệu phổ biến nhất trong thế giới lập trình, MySQL thực sự không hỗ trợ trực tiếp tiết kiệm một loại array
.
Bạn có thể tạo một cột bảng gồm loại array
trong MySQL. Cách dễ nhất lưu trữ dữ liệu loại array
trong MySQL là sử dụng kiểu dữ liệu
INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
1.Kiểu dữ liệu
INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
1 được thêm vào lần đầu tiên trong MySQL phiên bản 5.7.8 và bạn có thể sử dụng loại để lưu trữ các mảng và đối tượng INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
1.Hãy cùng xem một ví dụ về việc sử dụng loại
INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
1 trong MySQL.Đầu tiên, hãy tạo một bảng có tên
INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
5 với câu lệnh SQL sau:CREATE TABLE example [
`id` int NOT NULL AUTO_INCREMENT,
`docs` JSON,
PRIMARY KEY [`id`]
];
Bảng
INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
5 sẽ có hai cột: cột INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
7 và cột INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
8.Bây giờ bạn có thể đặt một mảng bên trong cột
INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
8 với câu lệnh +----+-----------------+
| id | docs |
+----+-----------------+
| 1 | ["hot", "cold"] |
+----+-----------------+
0 sau:INSERT INTO example [docs]
VALUES ['["hot", "cold"]'];
Bây giờ cột
+----+-----------------+
| id | docs |
+----+-----------------+
| 1 | ["hot", "cold"] |
+----+-----------------+
1 sẽ có một mảng được lưu trữ bên trong nó như sau:+----+-----------------+
| id | docs |
+----+-----------------+
| 1 | ["hot", "cold"] |
+----+-----------------+
Và đó là cách dễ nhất bạn có thể lưu trữ một loại array
bằng MySQL.
Bạn có thể đặt các mảng có độ dài khác nhau làm giá trị cột:
INSERT INTO example [docs]
VALUES ['["morning", "noon", "night"]'],
['["raining", "cloudy"]'],
['["storm"]'];
Cột bảng sẽ có các mảng có độ dài khác nhau như hình dưới đây:
+----+------------------------------+
| id | docs |
+----+------------------------------+
| 1 | ["hot", "cold"] |
| 2 | ["morning", "noon", "night"] |
| 3 | ["raining", "cloudy"] |
| 4 | ["storm"] |
+----+------------------------------+
Bạn có thể truy vấn dữ liệu cụ thể bằng cách sử dụng kết hợp mệnh đề
+----+-----------------+
| id | docs |
+----+-----------------+
| 1 | ["hot", "cold"] |
+----+-----------------+
3 và +----+-----------------+
| id | docs |
+----+-----------------+
| 1 | ["hot", "cold"] |
+----+-----------------+
4 như sau:SELECT id, docs
FROM example
WHERE docs LIKE '%cold%';
Và bạn cũng có thể
+----+-----------------+
| id | docs |
+----+-----------------+
| 1 | ["hot", "cold"] |
+----+-----------------+
5 các hàng cụ thể như thế này:UPDATE example SET docs = '["day", "night"]'
WHERE docs LIKE '%cold%';
Nếu bạn muốn tìm hiểu thêm về cách MySQL xử lý các mảng JSON, bạn có thể xem xét tài liệu kiểu dữ liệu JSON MySQL.
Cảm ơn vì đã đọc! 🙏