sql >> Database teknologi >  >> RDS >> Mysql

MySQL-opdatering eller omdøb en nøgle i JSON

Der er ingen ligetil JSON-funktion til at gøre det samme. Vi kan bruge en kombination af nogle JSON-funktioner.

Vi fjerner oldKey-oldValue parre ved hjælp af Json_Remove( ) funktion, og derefter Json_Insert() newKey-oldValue par.

Json_Extract() funktion bruges til at hente en værdi svarende til en inputnøgle i JSON-dokumentet.

OPDATERING `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; 

Resultat

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

Som et alternativ til Json_Extract() , kan vi også bruge -> operatør for at få adgang til den værdi, der svarer til en given nøgle i JSON-dokumentet.

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


  1. Hvordan estimerer man SQL-forespørgselstiming?

  2. Mysql - Lagret procedure OUT variabel returnerer null

  3. Tips og tricks til implementering af databaserollebaserede adgangskontroller til MariaDB

  4. Forbindelse til Db dør efter>4<24 i spring-boot jpa hibernate