Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

JSON_ARRAY_INSERT () - Chèn giá trị vào một mảng JSON trong MySQL

Trong MySQL, JSON_ARRAY_INSERT() hàm được sử dụng để chèn một giá trị mới vào một mảng.

Bạn cung cấp tài liệu JSON làm đối số đầu tiên, theo sau là đường dẫn để chèn vào, tiếp theo là giá trị để chèn.

Cú pháp

Cú pháp như sau:

JSON_INSERT(json_doc, path, val[, path, val] ...)

Ở đâu:

  • json_doc là tài liệu JSON.
  • path là đường dẫn của phần tử để chèn giá trị mới vào.
  • val là giá trị mới sẽ được chèn.

Các cặp giá trị-đường dẫn được đánh giá từ trái sang phải. Tài liệu được tạo ra bằng cách đánh giá một cặp sẽ trở thành giá trị mới mà cặp tiếp theo được đánh giá.

Ví dụ 1 - Cách sử dụng cơ bản

Đây là một ví dụ để chứng minh.

SELECT JSON_ARRAY_INSERT('[1, 2, 3]', '$[1]', 4) AS 'Result';

Kết quả:

+--------------+
| Result       |
+--------------+
| [1, 4, 2, 3] |
+--------------+

Vì vậy, đối số thứ 3 được chèn vào mảng tại đường dẫn được chỉ định. Trong trường hợp này, tôi sử dụng $[1] cho đường dẫn, tham chiếu đến phần tử thứ hai (mảng JSON sử dụng đánh số dựa trên số 0 - việc đánh số bắt đầu từ 0 ).

Ví dụ 2 - Mảng lồng nhau

Dưới đây là một ví dụ về việc chèn một giá trị vào một mảng được lồng vào bên trong một mảng khác.

SELECT JSON_ARRAY_INSERT('[1, 2, [3, 4]]', '$[2][1]', 5) AS 'Result';

Kết quả:

+-------------------+
| Result            |
+-------------------+
| [1, 2, [3, 5, 4]] |
+-------------------+

Vì vậy, ở đây, tôi sử dụng $[2][1] như đường dẫn. [2] đề cập đến phần tử thứ 3 của mảng bên ngoài. [1] đề cập đến phần tử thứ 2 của mảng lồng nhau.

Ví dụ 3 - Tài liệu JSON lớn hơn

Ví dụ này sử dụng tài liệu JSON lớn hơn (một chút). Điều này cho thấy đường dẫn thay đổi như thế nào tùy thuộc vào vị trí của mảng trong tài liệu.

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_ARRAY_INSERT(@data, '$.Person.Hobbies[1]', "Base Jumping") AS 'Result';

Kết quả:

+----------------------------------------------------------------------------------+
| Result                                                                           |
+----------------------------------------------------------------------------------+
| {"Person": {"Name": "Homer", "Hobbies": ["Eating", "Base Jumping", "Sleeping"]}} |
+----------------------------------------------------------------------------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo một truy vấn mysql động bằng cách sử dụng các biến php

  2. Cách xóa khoảng trắng khỏi chuỗi trong MySQL

  3. Làm cách nào để loại bỏ khoảng trắng đầu và cuối trong trường MySQL?

  4. Làm cách nào để chọn hàng thứ n trong bảng cơ sở dữ liệu SQL?

  5. Làm cách nào để điền menu thả xuống thứ hai dựa trên lựa chọn của menu thả xuống đầu tiên bằng cách sử dụng jQuery / AJAX và PHP / MySQL?