Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pembaruan MySQL atau Ganti Nama Kunci di JSON

Tidak ada fungsi JSON langsung untuk melakukan hal yang sama. Kita dapat menggunakan kombinasi beberapa fungsi JSON.

Kami akan menghapus oldKey-oldValue pasangkan menggunakan Json_Remove() fungsi, lalu Json_Insert() newKey-oldValue pasangan.

Json_Extract() fungsi digunakan untuk mengambil nilai yang sesuai dengan kunci input dalam dokumen JSON.

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

Demo

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;

Hasil

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

Sebagai alternatif untuk Json_Extract() , kita juga bisa menggunakan -> operator untuk mengakses Nilai yang sesuai dengan Kunci yang diberikan dalam dokumen 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. Cara Mendapatkan Setiap Baris Ke-N di MySQL

  2. GALAT saat mengirim tabel sebagai parameter dalam prosedur penyimpanan MySQL

  3. SYSDATE() Contoh – MySQL

  4. Dapatkah saya memprediksi seberapa besar indeks Zend Framework saya? (dan beberapa Q cepat:s)

  5. Perlu Metode Hemat Waktu Mengimpor File CSV Besar Melalui PHP Ke Beberapa Tabel MySQL