Chuỗi hóa JSON trong MySQL
Thí dụXâu chuỗi một đối tượng JavaScript Show
var obj = { "tên". "John", "tuổi". 30, "thành phố". "Newyork"}; Thêm các ví dụ "Tự mình thử" bên dưới Định nghĩa và cách sử dụngJSON. Phương thức stringify() chuyển đổi các đối tượng JavaScript thành chuỗi Khi gửi dữ liệu đến máy chủ web, dữ liệu phải là một chuỗi Hỗ trợ trình duyệtCác số trong bảng chỉ định phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ phương thức Methodstringify()4. 08. 03. 54. 011. 5 cú phápJSON. stringify(obj, thay thế, dấu cách) Giá trị tham sốTham sốMô tảobjBắt buộc. Giá trị để chuyển đổi thành stringreplacerOptional. Một hàm hoặc một mảng được sử dụng để biến đổi kết quả. Trình thay thế được gọi cho từng mục. không gianTùy chọn. Hoặc là một chuỗi hoặc một sốMột chuỗi được sử dụng làm khoảng trắng (tối đa 10 ký tự), hoặc một Số, từ 0 đến 10, để cho biết có bao nhiêu ký tự khoảng trắng được sử dụng làm khoảng trắng chi tiết kỹ thuậtGiá trị trả về. Phiên bản JavaScript chuỗi. ECMAScript 5Thêm ví dụThí dụSử dụng chức năng thay thế /*thay giá trị của "city" thành chữ hoa. */ Thí dụSử dụng tham số không gian /*Chèn 10 ký tự khoảng trắng cho mỗi khoảng trắng. */ Thí dụSử dụng tham số không gian /*Chèn từ SPACE cho mỗi khoảng trắng. */ Trang liên quanHướng dẫn JSON. Giới thiệu JSON cũng. bạn không nên sử dụng các hàm cả MySQL hỗ trợ kiểu dữ liệu JSON gốc hỗ trợ xác thực tự động và tối ưu hóa lưu trữ và truy cập các tài liệu JSON. Mặc dù dữ liệu JSON tốt nhất nên được lưu trữ trong cơ sở dữ liệu NoSQL như MongoDB, đôi khi bạn vẫn có thể gặp các bảng có dữ liệu JSON. Trong phần đầu tiên của bài đăng này, chúng tôi sẽ giới thiệu cách trích xuất dữ liệu từ trường JSON trong MySQL bằng các câu lệnh đơn giản. Và trong phần thứ hai, chúng tôi sẽ giới thiệu cách tổng hợp dữ liệu từ các bảng MySQL thành các mảng hoặc đối tượng JSON mà sau đó có thể được sử dụng thuận tiện trong các ứng dụng của bạn Hình ảnh từ PixabayHệ thống được thiết lập tương tự như hệ thống đã giới thiệu trong bài viết trước về cách thực thi truy vấn SQL trong Python. Nếu bạn đã thiết lập hệ thống theo hướng dẫn trong bài viết đó, bạn có thể chuyển sang phần tiếp theo. Nếu không, bạn có thể làm theo các hướng dẫn đơn giản bên dưới để thiết lập hệ thống của mình. Để biết giải thích chi tiết về các lệnh và tùy chọn, vui lòng tham khảo bài viết trước Về cơ bản, chúng tôi sẽ khởi động một máy chủ MySQL cục bộ trong bộ chứa Docker Bạn có thể thực hiện trực tiếp các truy vấn SQL trong bảng điều khiển bắt đầu ở trên. Ngoài ra, nếu bạn thích sử dụng giao diện đồ họa, bạn có thể cài đặt và sử dụng DBeaver, một trình quản lý cơ sở dữ liệu đồ họa tuyệt vời cho tất cả các loại cơ sở dữ liệu. Nó thực sự đáng để thử nếu bạn đang vật lộn với MySQL workbench. Để biết thêm chi tiết về cách cài đặt và thiết lập DBeaver, bài viết này có một bản tóm tắt ngắn nhưng hữu ích Trước tiên, hãy khám phá các hàm và toán tử phổ biến của MySQL có thể được sử dụng để trích xuất dữ liệu từ trường JSON Có hai loại giá trị JSON chính trong MySQL
Các mảng và đối tượng JSON có thể được lồng vào nhau, như chúng ta sẽ thấy sau Chúng ta có thể sử dụng hàm JSON_EXTRACT(json_doc, path) Đối với một mảng JSON, đường dẫn được chỉ định bằng mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); Đối với đối tượng JSON, đường dẫn được chỉ định bằng mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); Nếu chỉ có hai đối số cho Đặc biệt, MySQL xử lý các chuỗi được sử dụng trong ngữ cảnh JSON bằng cách sử dụng bộ ký tự mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 0 và đối chiếu mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 1. Bộ ký tự là một tập hợp các ký hiệu và mã hóa, còn đối chiếu là một bộ quy tắc để so sánh các ký tự trong một bộ ký tự. Tốt hơn là tạo bảng có trường JSON bằng cách sử dụng bộ ký tự và đối chiếu tương ứngBởi vì mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 1 là đối chiếu nhị phân, các khóa phân biệt chữ hoa chữ thường và chúng tôi cần chỉ định chúng bằng chữ hoa chữ thường chính xácBây giờ chúng ta có thể sử dụng toán tử Như chúng ta thấy, Thật thú vị, các trích dẫn vẫn còn đó cho mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 6 và mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 7. Đây không phải là những gì chúng tôi muốn. Chúng tôi muốn xóa dấu ngoặc kép, tương tự như trường mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 8Để loại bỏ các trích dẫn của giá trị được trích xuất, chúng ta cần sử dụng hàm mysql> SELECT JSON_EXTRACT('[10, 20, 30, 40]', '$[0]'); 9. Vì mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 0 được sử dụng phổ biến nên cũng có một toán tử viết tắt cho tổ hợp này, đó là mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1. Hãy xem nó trong thực tếNó chứng minh rằng mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1 và mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 3 có cùng kết quả. Vì mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1 ít phải gõ hơn nên nó được ưu tiên trong hầu hết các trường hợpTuy nhiên, nếu bạn muốn trích xuất dữ liệu từ một mảng JSON lồng nhau hoặc đối tượng JSON, bạn không thể sử dụng chuỗi mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1. Bạn chỉ có thể sử dụng -> và mysql> SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); 1 cho cấp cao nhất và cần sử dụng JSON_EXTRACT cho các cấp lồng nhau. Hãy trích xuất điểm số cho mỗi học sinhChúc mừng. Nó hoạt động như mong đợi Điểm mấu chốt để trích xuất dữ liệu từ trường JSON trong MySQL
Có khá nhiều chức năng khác để làm việc với dữ liệu JSON trong MySQL. Tuy nhiên, nếu bạn cần sử dụng các hàm này để xác thực/tìm kiếm trường JSON của mình hoặc thực hiện các thao tác CRUD trên đó, bạn nên cân nhắc nghiêm túc việc sử dụng MongoDB để lưu trữ trường JSON. MongoDB chuyên nghiệp và thuận tiện hơn nhiều trong việc xử lý dữ liệu phi cấu trúc (tài liệu) Trên đây chúng tôi đã giới thiệu cách trích xuất giá trị từ trường JSON trong MySQL. Bây giờ chúng ta sẽ tìm hiểu ngược lại và khám phá cách chọn dữ liệu JSON từ bảng MySQL. Để tiếp tục với phần này, chúng tôi cần một số dữ liệu giả để chơi với. Vui lòng sao chép các truy vấn SQL sau và chạy chúng trong bảng điều khiển MySQL hoặc DBeaver Đối với bảng này, ký tự mặc định và đối chiếu được sử dụng. Với hai truy vấn này, chúng ta tạo một bảng lưu trữ dữ liệu được trích xuất từ phần đầu tiên. Đây là một nhiệm vụ phổ biến đối với đường ống và phân tích dữ liệu, cụ thể là thực hiện một số phân tích dữ liệu sau khi làm sạch dữ liệu. Trong thực tế, bạn sẽ muốn lưu trữ điểm trong một bảng riêng biệt để các bảng được chuẩn hóa hơn. Tuy nhiên, ở đây dữ liệu được đặt trong cùng một bảng để đơn giản hóa việc trình diễn Bây giờ chúng ta có thể tổng hợp dữ liệu thành một mảng JSON bằng hàm Chúng ta cũng có thể tổng hợp dữ liệu thành một đối tượng JSON bằng cách sử dụng hàm Dữ liệu tổng hợp sau đó có thể được sử dụng trực tiếp trong ứng dụng của bạn. Nếu bạn cần thực hiện các truy vấn SQL đơn giản của Trong bài viết này, chúng tôi đã giới thiệu cách làm việc với dữ liệu JSON trong MySQL. Trong phần đầu tiên, các hàm và toán tử được sử dụng để trích xuất dữ liệu từ trường JSON được thảo luận với các ví dụ đơn giản. Và trong phần thứ hai, chúng tôi đã làm ngược lại và tổng hợp dữ liệu đã chuẩn hóa thành các mảng hoặc đối tượng JSON mà sau đó có thể được sử dụng trực tiếp trong chương trình của bạn. Thông thường chúng ta nên tránh lưu trữ dữ liệu phi cấu trúc (tài liệu) trong MySQL. Tuy nhiên, nếu không thể tránh khỏi, kiến thức trong bài viết này sẽ giúp ích cho công việc của bạn Làm cách nào để xâu chuỗi JSON trong MySQL?Một giải pháp tinh tế là sử dụng các khả năng của JSON_TABLE() và GROUP_CONCAT() của MySQL . Lưu câu trả lời này. Hiển thị hoạt động trên bài đăng này. $array = (kết quả từ cột); .
Tôi có thể lưu trữ JSON dưới dạng chuỗi trong MySQL không?Lưu ý rằng bất kỳ cơ sở dữ liệu nào cũng sẽ chấp nhận tài liệu JSON dưới dạng một chuỗi đơn. Tuy nhiên, MySQL và PostgreSQL hỗ trợ dữ liệu JSON được xác thực theo các cặp khóa/giá trị thực thay vì một chuỗi cơ bản .
Làm cách nào để phân tích cú pháp dữ liệu JSON trong MySQL?Máy chủ MySQL. . Tạo cơ sở dữ liệu mẫu. Kết nối với máy chủ của bạn và đăng nhập vào MySQL của bạn với quyền root. . Các kiểu dữ liệu tài liệu MySQL. Trong MySQL, bạn phải viết các giá trị JSON dưới dạng chuỗi khi thực thi các câu lệnh SQL. . Xác thực, kiểm tra loại và lưu tài liệu JSON vào bảng MySQL. . Xác thực tài liệu JSON theo lược đồ. . Phân tích tài liệu JSON Làm cách nào để cập nhật dữ liệu JSON trong MySQL?Trong MySQL, hàm JSON_SET() chèn hoặc cập nhật các giá trị trong tài liệu JSON và trả về kết quả . Bạn cung cấp tài liệu JSON làm đối số đầu tiên, tiếp theo là đường dẫn để chèn vào, tiếp theo là giá trị để chèn. Bạn có thể cung cấp nhiều cặp đường dẫn/giá trị nếu cần cập nhật nhiều giá trị. |