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

Cập nhật MySQL hoặc đổi tên khóa trong JSON

Không có hàm JSON đơn giản nào để làm điều tương tự. Chúng tôi có thể sử dụng kết hợp một số hàm JSON.

Chúng tôi sẽ xóa oldKey-oldValue ghép nối bằng cách sử dụng Json_Remove() và sau đó là Json_Insert() the newKey-oldValue cặp.

Json_Extract() hàm được sử dụng để tìm nạp giá trị tương ứng với khóa đầu vào trong tài liệu JSON.

UPDATE `my_table` 
SET `my_col` = JSON_INSERT(
                           JSON_REMOVE(my_col, '$.oldKeyValue'), 
                           '$.newKeyValue', 
                           JSON_EXTRACT(my_col, '$.oldKeyValue')
                          );

Bản trình diễn

SET @my_col := '{"endDate": "2018-10-10", "startDate": "2017-09-05", "oldKeyValue": {"foo": 1000, "bar": 2000, "baz": 3000}, "anotherValue": 0}';

SET @new_col := JSON_INSERT(
                            JSON_REMOVE(@my_col, '$.oldKeyValue'), 
                            '$.newKeyValue',
                            JSON_EXTRACT(@my_col,'$.oldKeyValue')
                          );

SELECT @new_col;

Kết quả

| @new_col                                                                                                                        |
| ------------------------------------------------------------------------------------------------------------------------------- |
| {"endDate": "2018-10-10", "startDate": "2017-09-05", "newKeyValue": {"bar": 2000, "baz": 3000, "foo": 1000}, "anotherValue": 0} |

Thay thế cho Json_Extract() , chúng ta cũng có thể sử dụng -> để truy cập vào Giá trị tương ứng với một Khóa nhất định trong tài liệu JSON.

UPDATE `my_table` 
SET `my_col` = JSON_INSERT(
                           JSON_REMOVE(my_col, '$.oldKeyValue'), 
                           '$.newKeyValue', 
                           my_col->'$.oldKeyValue' 
                          );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hibernate, mysql, glassfish v3 và JTA datasource

  2. Sao lưu và khôi phục đơn giản cho Cơ sở dữ liệu mysql từ Java

  3. Làm cách nào để đếm giá trị NULL trong MySQL?

  4. tìm lý do bế tắc mysql

  5. Xóa các thẻ HTML khỏi bản ghi