如何更新和复制同一个表中的数据,但新数据是JSON格式的数据。
我希望更新后的字段是:{"t":"token1","s":"secret1"}
DB user_api表:
(id) (token) (secret) (api)
---------------------------
1 token1 secret1 NULL
更新查询:
UPDATE user_api SET api = '{"t":"' +token+ '", "s":"' +secret+ '"}';
发布于 2016-05-06 20:22:48
使用CONCAT
UPDATE user_api SET api = CONCAT('{"t":"', token, '", "s":"', secret, '"}');
发布于 2018-06-04 03:54:08
请改用JSON_SET()
函数。
UPDATE `user_api` SET `api` = JSON_SET(`api`,'$.t',token,'$.s',secret) WHERE ...
这将帮助您摆脱所有CONCAT
的东西。如果指定字段中不存在键,则JSON_SET()函数插入键/值对。如果它存在,则该函数将更新值。
如果键不存在,想要插入,可以使用JSON_INSERT()
函数。或者,如果您只想在密钥存在的情况下更新值,则可以使用JSON_REPLACE()
函数。
https://stackoverflow.com/questions/37072256
复制相似问题