Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL актуализиране или преименуване на ключ в JSON

Няма ясна JSON функция, която да направи същото. Можем да използваме комбинация от някои JSON функции.

Ще премахнем oldKey-oldValue сдвоете с помощта на Json_Remove( ) функция и след това Json_Insert() newKey-oldValue чифт.

Json_Extract() функцията се използва за извличане на стойност, съответстваща на входен ключ в JSON документа.

АКТУАЛИЗАЦИЯ `my_table` SET `my_col` =JSON_INSERT( JSON_REMOVE(my_col, '$.oldKeyValue'), '$.newKeyValue', JSON_EXTRACT(my_col, '$.oldKeyValue'); 

Демо

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_EXTRAl $.oldKeyValue') );SELECT @new_col; 

Резултат

<предварителен код>| @new_col || -------------------------------------------------- -------------------------------------------------- --------------------------- || {"endDate":"2018-10-10", "startDate":"2017-09-05", "newKeyValue":{"bar":2000, "baz":3000, "foo":1000}, " друга стойност":0} |

Като алтернатива на Json_Extract() , можем също да използваме -> оператор за достъп до стойността, съответстваща на даден ключ в JSON документа.

АКТУАЛИЗАЦИЯ `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. Как да покажа дата като iso 8601 формат с PHP

  2. MySQL GROUP BY и попълване на празни редове

  3. Квалифициране на име на колона на временна таблица в jOOQ

  4. качване на изображения на сървър в пролетния MVC и съхраняване на препратка в базата данни на mysql

  5. По-бърз начин за изтриване на съвпадащи редове?